使用docker搭建redis集群

最近学习docker,记录一下觉得自己不太会的东西 - -
使用docker搭建redis集群,我们准备创建6个docker容器,使用3主3从的形式搭建redis集群

首先我们使用docker创建自定义网络

docker network create --subnet 172.38.0.0/16 redis

然后我们使用脚本自动创建6个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

再使用脚本run相应6个容器

for port in $(seq 1 6); \
do \
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
done

接下来我们就可以看到6个容器已经全部运行起来了
在这里插入图片描述
接下来我们创建redis集群

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

会提示我们是否按这种形式创建集群 3主3从即可 输入yes 效果如下
在这里插入图片描述
然后我们就可以随便进一个redis容器里面去了

docker exec -it redis-1 /bin/sh  # 注意这里不能写bash
/data # redis-cli -c  #进入集群
127.0.0.1:6379> cluster nodes # 查看结点信息
2556bc053577b96881bd241369ac9bd73e803137 172.38.0.11:6379@16379 myself,master - 0 1623655496000 1 connected 0-5460
154585e6d4f281d537a2c020799f0f1caf7ee659 172.38.0.15:6379@16379 slave 2556bc053577b96881bd241369ac9bd73e803137 0 1623655495554 5 connected
ccb0451ece139098655615b9194aff45ca991f2c 172.38.0.16:6379@16379 slave eeeb8250a491eceaf4c8a8da5e0d5095ba1d1663 0 1623655496756 6 connected
eeeb8250a491eceaf4c8a8da5e0d5095ba1d1663 172.38.0.12:6379@16379 master - 0 1623655496756 2 connected 5461-10922
9ee8da80f53b5bf2ee1009f008912a3fc40db0e7 172.38.0.13:6379@16379 master - 0 1623655495755 3 connected 10923-16383
5cec4e9d0c188f00ba75c0ecf37f713aa8973671 172.38.0.14:6379@16379 slave 9ee8da80f53b5bf2ee1009f008912a3fc40db0e7 0 1623655495000 4 connected

127.0.0.1:6379> set a b # 往集群中写入一个值
-> Redirected to slot [15495] located at 172.38.0.13:6379
OK

可以看出来是在redis-3写入的值 我们试着把redis-3停掉看看我们还能不能取出来这个值

[root@iz2ze2lho701dwppf3ie44z conf]# docker stop redis-3
redis-3

127.0.0.1:6379> get a
-> Redirected to slot [15495] located at 172.38.0.14:6379 # 可以看到从第4个节点中取出了值
"b"
172.38.0.14:6379> 

over

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
通过docker搭建Redis集群的步骤如下: 1. 创建容器:使用docker命令创建多个Redis容器,每个容器代表一个节点。例如,可以使用以下命令创建一个名为redis-node-1的节点容器: ``` docker run --name redis-node-1 -p 6381:6379 -d redis ``` 2. 进入容器:使用docker exec命令进入容器内部,例如,可以使用以下命令进入redis-node-1容器: ``` docker exec -it redis-node-1 /bin/bash ``` 3. 构建集群关系:在容器内部,使用Redis命令行工具,将新增的节点作为master节点加入原集群。例如,可以使用以下命令将节点redis-node-7加入集群: ``` redis-cli -p 6381 cluster add-node <new_node_ip:port> <existing_node_ip:port> ``` 4. 查看集群状态:使用Redis命令行工具查看集群的状态。例如,可以使用以下命令在节点redis-node-1上查看集群信息: ``` redis-cli -p 6381 cluster info ``` 通过以上步骤,你可以使用docker搭建Redis集群,并查看集群的状态。请根据实际情况进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [阿昌教你通过docker搭建Redis集群](https://blog.csdn.net/qq_43284469/article/details/122458602)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值