首页 > 数据库 >Redis集群部署实战(docker版)

Redis集群部署实战(docker版)

时间:2022-10-22 17:33:39浏览次数:45  
标签:Redis redis port 6379 172.38 集群 conf docker slots

 

 

先创建一个网卡
docker network create redis --subnet 172.38.0.0/16
image

通过脚本创建六个redis配置
for port in $(seq 1 6);
do
mkdir -p /mydata/redis/node-${port}/conf
touch /mydata/redis/node-${port}/conf/redis.conf
cat << EOF >/mydata/redis/node-${port}/conf/redis.conf
port 6379
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.38.0.1${port}
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
EOF
done

image

docker run -p 637${port}:6379 -p 1637${port}:16379 --name redis-${port}
-v /mydata/redis/node-${port}/data:/data
-v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf
-d --net redis --ip 172.38.0.1${port} redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf (通过脚本启动)

image

docker run -p 6371:6379 -p 16371:16379 --name redis-1
-v /mydata/redis/node-1/data:/data
-v /mydata/redis/node-1/conf/redis.conf:/etc/redis/redis.conf
-d --net redis --ip 172.38.0.11 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf (一个一个启动)

创建集群

redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1

/data # redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 1
72.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1

Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 172.38.0.15:6379 to 172.38.0.11:6379
Adding replica 172.38.0.16:6379 to 172.38.0.12:6379
Adding replica 172.38.0.14:6379 to 172.38.0.13:6379
M: 43ecac57d81cd97030dc1fd35728e5387faa758f 172.38.0.11:6379
slots:[0-5460] (5461 slots) master
M: aeda148ebf832e2ab7684595813c7858261b6f8e 172.38.0.12:6379
slots:[5461-10922] (5462 slots) master
M: 91ce5c16a7b2dc724145ae5bc0137c4b8b1264b9 172.38.0.13:6379
slots:[10923-16383] (5461 slots) master
S: 322880e37e9f401cc705729aaec8789e5919808d 172.38.0.14:6379
replicates 91ce5c16a7b2dc724145ae5bc0137c4b8b1264b9
S: bff4df376b3d8af9643ccced17084dcfdf8f9c75 172.38.0.15:6379
replicates 43ecac57d81cd97030dc1fd35728e5387faa758f
S: 6bd617ce197a910ff88a996fc3f3139bb5661967 172.38.0.16:6379
replicates aeda148ebf832e2ab7684595813c7858261b6f8e
Can I set the above configuration? (type 'yes' to accept): yes
Nodes configuration updated
Assign a different config epoch to each node
Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
...
Performing Cluster Check (using node 172.38.0.11:6379)
M: 43ecac57d81cd97030dc1fd35728e5387faa758f 172.38.0.11:6379
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: 6bd617ce197a910ff88a996fc3f3139bb5661967 172.38.0.16:6379
slots: (0 slots) slave
replicates aeda148ebf832e2ab7684595813c7858261b6f8e
S: 322880e37e9f401cc705729aaec8789e5919808d 172.38.0.14:6379
slots: (0 slots) slave
replicates 91ce5c16a7b2dc724145ae5bc0137c4b8b1264b9
M: aeda148ebf832e2ab7684595813c7858261b6f8e 172.38.0.12:6379
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
M: 91ce5c16a7b2dc724145ae5bc0137c4b8b1264b9 172.38.0.13:6379
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
S: bff4df376b3d8af9643ccced17084dcfdf8f9c75 172.38.0.15:6379
slots: (0 slots) slave
replicates 43ecac57d81cd97030dc1fd35728e5387faa758f
[OK] All nodes agree about slots configuration.
Check for open slots...
Check slots coverage...
[OK] All 16384 slots covered.
image
查看集群信息 cluster info
image
查看节点 cluster nodes
image
测试主从机制
随便set一个值,然后把对应主机停了,看从机是否可用
image

image
可见在14从机上
查看集群节点,13故障14变成master
image
至此docker搭建集群完成

标签:Redis,redis,port,6379,172.38,集群,conf,docker,slots
From: https://www.cnblogs.com/wangjinnan97/p/16815598.html

相关文章

  • docker安装zabbix6.0的ZBX状态为红色
    docker安装zabbix6.0详细方法参照官网https://www.zabbix.com/documentation/6.0/en/manual/installation/containers如果出现这种报错,请修改zabbix-agent配置文件中的se......
  • dremio 23 版本docker 镜像jdk 说明
    实际上dremio官方在232版本的relasenote中已经说明了关于jdk的处理,在看了最新docker镜像也可以印证此说明参考处理22版本的  23版本的  说明目......
  • 利用redis作为消息队列实现异步秒杀业务
    实现消费券秒杀的优化,在加入限时抢购的优惠券时,自动的将消费券的库存stock信息也加入到redis中(可设为抢购结束后过期)抢购之前在redis中进行库存是否充足(stock)、用户是否已......
  • CentOS 安装 Docker+ Aliyun 镜像
     1.使用一键安装命令curl-fsSLhttps://get.docker.com|bash-sdocker--mirrorAliyun  2.配置阿里云镜像,进入网站https://cr.console.aliyun.com/cn-ha......
  • docker安装redis(win10已安装Docker Desktop)
    参考文档:RunRedisStackonDocker|Redis如图所示:  终端中运行以下命令:dockerrun-d--nameredis-stack-p6379:6379-p8001:8001redis/redis-stack:late......
  • docker学习
    1.安装官方地址一键安装:curl-fsSLhttps://get.docker.com|bash-sdocker--mirrorAliyun或国内daocloud一键安装:curl-sSLhttps://get.daocloud.io/docker......
  • docker和containerd清空所有镜像和容器 并释放空间
    文档说明:只记录关键有用的地方;docker清理dockersystemdf#占用存储空间,又没有用的容器dockerimages-aq-f'dangling=true'|xargsdockerrmi#删除所有d......
  • InfluxDB Cluster - InfluxDB Enterprise 集群的开源替代方案
    InfluxDBCluster-InfluxDBEnterprise集群的开源替代方案InfluxDBCluster-一个开源分布式时间序列数据库,InfluxDBEnterprise的开源替代方案GitHub:chengshiwen/......
  • 回顾缓存穿透、缓存雪崩、缓存击穿及封装Redis工具类
    缓存穿透问题的解决思路缓存穿透:缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库。常见的解决方案有两种:缓存......
  • CentOS 安装docker
    1.旧版本删除yumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate\docker-se......