Docker Compose如何单机配置Redis与Senti
admin
2023-01-24 19:42:41
0

这篇文章给大家分享的是有关Docker Compose单机配置Redis与Senti的内容。小编觉得挺实用的,因此分享给大家学习。如下资料是关于Docker Compose单机配置Redis与Senti的步骤。

Docker Compose如何单机配置Redis与Senti

卸载旧版本docker uninstall old version

sudo yum remove docker \

                  docker-client \

                  docker-client-latest \

                  docker-common \

                  docker-latest \

                  docker-latest-logrotate \

                  docker-logrotate \

                  docker-engine

安装repo install docker repo

sudo yum install -y yum-utils \

  device-mapper-persistent-data \

  lvm2

sudo yum-config-manager \

--add-repo \

    https://download.docker.com/linux/centos/docker-ce.repo

安装社区版本install Docker Engine-Community

sudo yum install -y docker-ce docker-ce-cli containerd.io --skip-broken

设置服务启动和测试镜像

sudo systemctl start docker

sudo systemctl enable docker

sudo docker run hello-world

Docker Compose如何单机配置Redis与Senti

安装git和下载代码

sudo yum install -y git

git clone https://github.com/AliyunContainerService/redis-cluster

cd redis-cluster

检查docker compose文件

cat docker-compose.yml

master:

image: redis:3

slave:

image: redis:3

command: redis-server --slaveof redis-master 6379

links:

- master:redis-master

sentinel:

build: sentinel

environment:

- SENTINEL_DOWN_AFTER=5000

- SENTINEL_FAILOVER=5000

links:

- master:redis-master

- slave

在模板中定义了下面一系列服务

  • master: Redis master
  • slave: Redis slave
  • sentinel: Redis Sentinel

cat sentinel.conf

# Example sentinel.conf can be downloaded from http://download.redis.io/redis-stable/sentinel.conf

port 26379

dir /tmp

sentinel monitor mymaster redis-master 6379 $SENTINEL_QUORUM

sentinel down-after-milliseconds mymaster $SENTINEL_DOWN_AFTER

sentinel parallel-syncs mymaster 1

sentinel failover-timeout mymaster $SENTINEL_FAILOVER

并以sentinel模式启动容器。其配置文件如下,其中包含了sentinel对名为"mymaster"的集群的监控配置

注意:

  • slave和sentinel容器初始化配置的Redis master节点主机名为"redis-master",这里我们利用了Docker容器连接的别名机制来连接master和sentinel/slave容器实例
  • 由于我们会部署3个Sentinel,我们把sentinel的"quorum"设置为2,只有两个sentinel同意故障切换,才会真正切换相应的redis master节点。

sudo yum install -y docker-compose

sudo docker-compose up -d


Docker Compose如何单机配置Redis与Senti

厕所回来都好了

docker ps

Docker Compose如何单机配置Redis与Senti

怎么只有2个哨兵,扩展到3个

docker-compose scale sentinel=3

Docker Compose如何单机配置Redis与Senti

顺大便扩容2个slave redis

docker-compose scale slave=2

Docker Compose如何单机配置Redis与Senti

看下目前跑的内容

docker ps|sort -k2

Docker Compose如何单机配置Redis与Senti

改一个测试redis宕机的脚本

vi test.sh

MASTER_IP=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' rediscluster_master_1)

SLAVE_IP=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' rediscluster_slave_1)

SENTINEL_IP=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' rediscluster_sentinel_1)

echo Redis master: $MASTER_IP

echo Redis Slave: $SLAVE_IP

echo ------------------------------------------------

echo Initial status of sentinel

echo ------------------------------------------------

docker exec rediscluster_sentinel_1 redis-cli -p 26379 info Sentinel

echo Current master is

docker exec rediscluster_sentinel_1 redis-cli -p 26379 SENTINEL get-master-addr-by-name mymaster

echo ------------------------------------------------

echo Stop redis master

docker pause rediscluster_master_1

echo Wait for 10 seconds

sleep 10

echo Current infomation of sentinel

docker exec rediscluster_sentinel_1 redis-cli -p 26379 info Sentinel

echo Current master is

docker exec rediscluster_sentinel_1 redis-cli -p 26379 SENTINEL get-master-addr-by-name mymaster

echo ------------------------------------------------

echo Restart Redis master

docker unpause rediscluster_master_1

sleep 5

echo Current infomation of sentinel

docker exec rediscluster_sentinel_1 redis-cli -p 26379 info Sentinel

echo Current master is

docker exec rediscluster_sentinel_1 redis-cli -p 26379 SENTINEL get-master-addr-by-name mymaster

./test.sh

发现redis master 进行了切换

Docker Compose如何单机配置Redis与Senti


但是一台主机的3个redis和3个sentinel 不能算高可用,需要将redis和sentinel部署到不同区域的多个主机中

以上就是Docker Compose单机配置Redis与Senti的详细内容了,看完之后是否有所收获呢?如果想了解更多相关内容,欢迎关注行业资讯!

相关内容

热门资讯

德国总理:美国正在被伊朗羞辱 德国之声4月27日报道,德国总理默茨在访问一所学校时表示,在当前的持续冲突中,伊朗领导层正试图羞辱美...
理响中国|“长”歌以行,风云激... 光阴如梭,东方潮阔。这里是中国的长三角,世界的长三角。无论过去、现在还是未来,这片土地都因时代而生,...
白宫:特朗普及其国安团队开会讨... 新华社华盛顿4月27日电 美国白宫新闻秘书莱维特27日在记者会上证实,总统特朗普及其国家安全团队当天...
人民日报刊文:日本放开杀伤性武... 日本放开杀伤性武器出口推高地缘冲突风险(国际论坛)常思纯《人民日报》(2026年04月28日 第 0...
医疗保障法草案二审:明确生育保... 满足多样化健康保障需求本报记者 彭 波4月27日,医疗保障法草案二审稿提请十四届全国人大常委会第二十...
天津一景区发生自转旋翼机事故1... 澎湃新闻记者 吕新文中国民用航空华北地区管理局4月22日公布《豪客通航“10•1”天津长芦汉盐旅游区...
卡塔尔埃米尔与美国总统特朗普通... 当地时间24日,卡塔尔埃米尔塔米姆与美国总统特朗普通电话,重点就中东地区局势以及伊朗与美国谈判问题交...
男子30年前被扣押2859克黄... 澎湃新闻记者 王鑫家住辽宁省大连市的潘永嘉近日向澎湃新闻反映称,三十年前,他在大连周水子机场被盖州市...
商务部:取消反制欧盟两家金融机... 中华人民共和国商务部令二〇二六年 第1号鉴于欧盟已取消对中国两家金融机构的制裁措施,现公布《关于取消...
过去24小时共有5艘船只通过霍... 总台记者当地时间24日获悉,过去24小时内,共有5艘船只通过霍尔木兹海峡,其中包括一艘伊朗油轮。(总...