首先要了解redis的集群概念,这里不再赘述
首先,我们启用三个不同的端口作为从机
docker run -d -p 6379:6379 --name redis01 redis
docker run -d -p 6380:6379 ----name redis02 redis
docker run -d -p 6381:6379 -name redis03 redis
6382 作为主机
docker run -d -p 6382:6379 --name redismaster redis
查看镜像运行
docker ps
查看主机的元数据查看容器内网地址(IPAddress:172.17.0.6),后面需要用到 ip 地址来绑定主机
docker inspect redismaster # 要把主机的地址记下
分别进入从机 redis01、 redis02 、redis03 内部
执行命令
[root@localhost ~]# docker exec -it redis01 /bin/bash # 以交互模式进入
root@f90aa020be57:/data# redis-cli #启动redis客户端
127.0.0.1:6379> slaveOf 172.17.06 6379 #认定ip 端口为主机
OK
127.0.0.1:6379> info replication # 查看主从信息
# Replication
role:slave # 当前为从节点
master_host:172.17.06 # 主节点ip
master_port:6379 # 主节点端口
master_link_status:up
master_last_io_seconds_ago:3
master_sync_in_progress:0
slave_repl_offset:28
slave_priority:100
slave_read_only:1
connected_slaves:2
slave0:ip=172.17.0.4,port=6379,state=online,offset=28,lag=0
slave1:ip=172.17.0.5,port=6379,state=online,offset=28,lag=0
master_failover_state:no-failover
master_replid:27a0077a51642d85be1932a30a93f95f9dfa21f5
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:28
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:28
这样我们就配置好了一个从节点,重复以上命令把从机2和从机3也配置了
我们在主节点redismaster添加数据
set k1 v1
然后在从节点redis01中查看
可以查看到 k1,但是要注意从节点只能读不能写(即 set 和其他相关的操作)
注意:以上使用的是命令的方式设置主从节点,一旦主节点宕机(关机),从节点将变为主节点。
采用配置文件的方式可以保证主从关系的稳定性,在这里不再做演示,只需要在开始时容器启动的时候指定配置文件启动即可
版权声明:本文为qq_44241252原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。