Docker下redis的主从配置教程详解
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,1、拉取redis镜像docker pull redis2、启动3个redis容器服务,分别使用到6379、6380、6381端口docker run --name redis-6379 -p 637
千家信息网最后更新 2025年12月02日Docker下redis的主从配置教程详解
1、拉取redis镜像
docker pull redis
2、启动3个redis容器服务,分别使用到6379、6380、6381端口
docker run --name redis-6379 -p 6379:6379 -d redisdocker run --name redis-6380 -p 6380:6379 -d redisdocker run --name redis-6381 -p 6381:6379 -dredis
3、查看容器
[tcy@tcy1 ~]$ docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESa9fa77adc598 daocloud.io/library/redis "docker-entrypoint.s 2 hours ago Up 2 hours 0.0.0.0:6381->6379/tcp redis-6381 6ee2f2f007e6 daocloud.io/library/redis "docker-entrypoint.s 2 hours ago Up 2 hours 0.0.0.0:6380->6379/tcp redis-6380 ab54741166e1 daocloud.io/library/redis "docker-entrypoint.s 3 hours ago Up 3 hours 0.0.0.0:6379->6379/tcp redis-6379
4、测试容器,成功
docker exec -it ab54741166e1 redis-cli:进入容器[root@tcy1 tcy]# docker exec -it ab54741166e1 redis-cli127.0.0.1:6379> set b tcyOK127.0.0.1:6379> get b"tcy"127.0.0.1:6379> quit[root@tcy1 tcy]#
5、开始redis集群配置
5.1、看容器内网的ip地址
[root@tcy1 tcy]# docker inspect a9fa77adc598

3个redis的内网ip地址为:
redis-6379:172.17.0.1:6379redis-6380:172.17.0.2:6379redis-6381:172.17.0.3:6379
5.2、进入docker容器内部,查看当前redis角色(主还是从)
[root@tcy1 tcy]# docker exec -it ab54741166e1 /bin/bashroot@ab54741166e1:/data# redis-cli127.0.0.1:6379> info replication# Replicationrole:masterconnected_slaves:0master_replid:d43d1ae8cde6cb084220e18b926aba79e0bb2504master_replid2:0000000000000000000000000000000000000000master_repl_offset:0second_repl_offset:-1repl_backlog_active:0repl_backlog_size:1048576repl_backlog_first_byte_offset:0repl_backlog_histlen:0127.0.0.1:6379> quitroot@ab54741166e1:/data# exit exit
目前三个都是master状态
5.3、使用redis-cli命令修改redis-6380、redis-6381的主机为172.17.0.1:6379
[root@tcy1 tcy]# docker exec -it a9fa77adc598 /bin/bash //redis-6380root@a9fa77adc598:/data# redis-cli127.0.0.1:6379> SLAVEOF 172.17.0.1 6379OK127.0.0.1:6379> quitroot@a9fa77adc598:/data# exitexit[root@tcy1 tcy]# docker exec -it 6ee2f2f007e6 /bin/bash //redis-6381root@6ee2f2f007e6:/data# redis-cli127.0.0.1:6379> SLAVEOF 172.17.0.1 6379OK127.0.0.1:6379> quit
5.4、查看redis-6379是否已经拥有2个从机,connected_slaves:2,是的
[root@tcy1 tcy]# docker exec -it ab54741166e1 /bin/bashroot@ab54741166e1:/data# redis-cli127.0.0.1:6379> info replication# Replicationrole:masterconnected_slaves:2slave0:ip=172.17.0.3,port=6379,state=online,offset=378,lag=1slave1:ip=172.17.0.2,port=6379,state=online,offset=378,lag=0master_replid:ce193b15cfd57f7dc3ccfbf2a4aef6156b131e6dmaster_replid2:0000000000000000000000000000000000000000master_repl_offset:378second_repl_offset:-1repl_backlog_active:1repl_backlog_size:1048576repl_backlog_first_byte_offset:1repl_backlog_histlen:378127.0.0.1:6379> quitroot@ab54741166e1:/data# exitexit
5.5、配置Sentinel哨兵
进入3台redis容器内部进行配置,在容器根目录里面创建sentinel.conf文件
文件内容为: sentinel monitor mymaster 172.17.0.1 6379 1
[root@tcy1 tcy]# docker exec -it a9fa77adc598 /bin/bashroot@a9fa77adc598:/data# cd / && touch sentinel.conf root@a9fa77adc598:/# vim /sentinel.conf
如果出现:bash: vim: command not found
解决:1、apt-get update 2、apt-get install vim
最后,启动Redis哨兵:
root@a9fa77adc598:/# redis-sentinel /sentinel.conf342:X 24 Jun 11:37:58.934 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo342:X 24 Jun 11:37:58.957 # Redis version=4.0.10, bits=64, commit=00000000, modified=0, pid=342, just started342:X 24 Jun 11:37:58.958 # Configuration loaded342:X 24 Jun 11:37:58.959 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.342:X 24 Jun 11:37:58.959 # Server can't set maximum open files to 10032 because of OS error: Operation not permitted.342:X 24 Jun 11:37:58.960 # Current maximum open files is 4096. maxclients has been reduced to 4064 to compensate for low ulimit. If you need higher maxclients increase 'ulimit -n'. _._ _.-``__ ''-._ _.-`` `. `_. ''-._ Redis 4.0.10 (00000000/0) 64 bit .-`` .-```. ```\/ _.,_ ''-._ ( ' , .-` | `, ) Running in sentinel mode |`-._`-...-` __...-.``-._|'` _.-'| Port: 26379 | `-._ `._ / _.-' | PID: 342 `-._ `-._ `-./ _.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | http://redis.io `-._ `-._`-.__.-'_.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | `-._ `-._`-.__.-'_.-' _.-' `-._ `-.__.-' _.-' `-._ _.-' `-.__.-' 342:X 24 Jun 11:37:59.068 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.342:X 24 Jun 11:37:59.089 # Sentinel ID is dfd5a5bfe1036b1df3395c4ba858329034fc5b7e342:X 24 Jun 11:37:59.091 # +monitor master mymaster 172.17.0.1 6379 quorum 1342:X 24 Jun 11:37:59.110 * +slave slave 172.17.0.3:6379 172.17.0.3 6379 @ mymaster 172.17.0.1 6379342:X 24 Jun 11:37:59.115 * +slave slave 172.17.0.2:6379 172.17.0.2 6379 @ mymaster 172.17.0.1 6379 342:X 24 Jun 11:39:27.601 * +sentinel sentinel ba9b0d0539d8273edfcbd922fe138f50daa78bbb 172.17.0.2 26379 @ mymaster 172.17.0.1 6379342:X 24 Jun 11:41:59.144 * +sentinel sentinel f0510f8582b72c056531f219397ed8826683e665 172.17.0.1 26379 @ mymaster 172.17.0.1 6379
便于观察,开多个窗口。
Sentinel哨兵配置完毕
5.6、测试
关闭Master
[tcy@tcy1 ~]$ docker stop ab54741166e1ab54741166e1
这时,剩余的2个从机,会自动选举产生新的主机,这里选举172.17.0.2为主机。

查看172.17.0.2,变成了主机。
[root@tcy1 /]# docker exec -it 6ee2f2f007e6 /bin/bashroot@6ee2f2f007e6:/data# redis-cli127.0.0.1:6379> info replication# Replicationrole:masterconnected_slaves:1slave0:ip=172.17.0.3,port=6379,state=online,offset=66906,lag=1master_replid:5a7489c8181ddf0d73d418d30d6a4c8e039198bamaster_replid2:ce193b15cfd57f7dc3ccfbf2a4aef6156b131e6dmaster_repl_offset:67041second_repl_offset:65534repl_backlog_active:1repl_backlog_size:1048576repl_backlog_first_byte_offset:85repl_backlog_histlen:66957127.0.0.1:6379>
总结
以上所述是小编给大家介绍的Docker下redis的主从配置,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
容器
配置
主机
哨兵
地址
文件
测试
选举
主从
成功
三个
内容
命令
多个
是的
根目录
状态
疑问
端口
角色
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
建立数据库的好处酒店
科技互联网业裁员
软件开发公司怎么选
研究生计算机网络技术学习方法
电脑设置首选dns服务器在哪里
软件开发如何报价单
中国数字化数据库
常用的数据库的安装方法
网络安全法的实施是几月几日
西安多彩网络技术有限公司
数据库的角色分配及权限划分
和平精英新的服务器叫什么名字
魏县直销网络推广需要服务器吗
廊坊胶吨网络技术有限公司
网络技术基础pk
网格数据库管理
公安局网络安全教育培训会
什么是数据库的冗余
上海大众售后数据库
逃离塔科夫买哪个服务器好
贸易公司的软件开发
金华市隆运网络技术有限公司
ibm服务器机器号
哪家个人软件开发好
崇明区网络软件开发协议
精准电话数据库
pc4 数据库
思讯不能连接到数据库
小型服务器和交换机辐射安全距离
戴尔R320服务器bios