Docker安装Redis集群,无中心节点方式解决方案RedisCluster

tech2024-03-27  67

 下载镜像

(这个是mukewang的老是封装好的,拿来即用)

[root@localhost ~]# docker pull yyyyttttwwww/redis #重命名 [root@localhost ~]# docker tag yyyyttttwwww/redis redis #删除长名字的redis,以免后面干扰 [root@localhost ~]# docker rmi -f yyyyttttwwww/redis

创建net2网段

(我的mysql集群使用了net1,所以这里就使用一个新的网段)

[root@localhost ~]# docker network create --subnet=172.19.0.0/16 net2

创建6节点Redis容器

[root@localhost ~]# docker run -it -d --name r1 -p 5001:6379 --net=net2 --ip 172.19.0.2 redis bash [root@localhost ~]# docker run -it -d --name r2 -p 5002:6379 --net=net2 --ip 172.19.0.3 redis bash [root@localhost ~]# docker run -it -d --name r3 -p 5003:6379 --net=net2 --ip 172.19.0.4 redis bash [root@localhost ~]# docker run -it -d --name r4 -p 5004:6379 --net=net2 --ip 172.19.0.5 redis bash [root@localhost ~]# docker run -it -d --name r5 -p 5005:6379 --net=net2 --ip 172.19.0.6 redis bash [root@localhost ~]# docker run -it -d --name r6 -p 5006:6379 --net=net2 --ip 172.19.0.7 redis bash

进入节点r1(后面几个节点以此类推)

[root@localhost ~]# docker exec -it r1 bash

配置Redis节点

#以后台节点运行128行左右(完整版的行数信息) daemonize yes #开启集群721行左右 cluster-enabled yes #集群配置文件729行左右 cluster-config-file nodes-6379.conf #集群超时时间 cluster-node-timeout 15000 #开启AOF模式(持久化方式,可用于恢复) appendonly yes

 使用编辑器编辑,对比上面的编辑就行(因为这个是已经封装好的,基本上不需要修改)

root@1f6a080bff27:/# vi /usr/redis/redis.conf

 进入编辑区,使用斜杆后面跟查找内容的方式查找,示例  /daemonize   然后改成和上面的意义就行了,后面几项以此类推,完成后输入 :wq 退出.

进入目录

#寻找目录 root@1f6a080bff27:/# cd /usr/redis/src #启动 root@1f6a080bff27:/usr/redis/src# ./redis-server ../redis.conf 退出容器 root@1f6a080bff27:/usr/redis/src# exit

同理操作其余几个节点镜像,到这里配置结束.

创建集群(这个镜像已将用ruby脚本写好了的,所以执行一下命令即可)

[root@localhost ~]# docker exec -it r1 bash root@1f6a080bff27:/# cd /usr/redis/ root@1f6a080bff27:/usr/redis# mkdir cluster root@1f6a080bff27:/usr/redis# cd src root@1f6a080bff27:/usr/redis/src# cp redis-trib.rb ../cluster root@1f6a080bff27:/usr/redis/src# ./redis-trib.rb create --replicas 1 172.19.0.2:6379 172.19.0.3:6379 172.19.0.4:6379 172.19.0.5:6379 172.19.0.6:6379 172.19.0.7:6379

执行后

输入yes后,看到下面就成功了,成功后,exit命令退出r1容器

测试安装结果

那再测试一下(当然使用redis可视化客户端测试也行)

[root@localhost ~]# docker exec -it r1 bash #连接集群 root@1f6a080bff27:/# /usr/redis/src/redis-cli -c 127.0.0.1:6379> set name zhangxiaoxiang -> Redirected to slot [5798] located at 172.19.0.3:6379 OK 172.19.0.3:6379> get name "zhangxiaoxiang" 172.19.0.3:6379>

 解释一下(127.0.0.1:6379> info  查看版本信息,这个版本是3.2.3的,不是很新)

 

最新回复(0)