redis的主从复制模式,将一个redis服务器作为主节点(master节点),一台redis服务器作为从节点(slave节点),从节点绑定主节点的ip地址及端口,则主节点的数据可复制到从节点上去,这就是redis的主从复制功能。
使用docker在同一个主机上安装redis主从复制模式步骤如下
- 拉取redis镜像
docker pull redis
- 准备好redis配置文件
redis-6379/redis.conf(master节点配置文件) redis-6380/redis.conf(slave节点配置文件)
redis配置文件可以从网上下载,master节点以下的地方可以修改:
#指定redis接受来自该ip的请求,如果设置为0.0.0.0则默认接受所有来源的请求
bind 0.0.0.0
#是否开启保护模式,要是配置里没有指定bind和密码。开启该参数后,redis只会本地进行访问,
#拒绝外部访问。要是开启了密码和bind,可以开启。否则最好关闭,设置为no
protected-mode no
#redis监听的端口号
port 6379
slave节点在master的基础上额外加上如下的配置:
port 6380
#绑定主节点的ip和端口号
replicaof 127.0.0.1 6379
#从节点是否具有只读的功能,如果为yes,从节点只可以读取,不可以写入
replica-read-only yes
- 启动容器
docker run -p 6379:6379 -d --name redis-6379 -v /root/redis-6379/conf/redis.conf:/redis.conf --restart=always redis redis-server /redis.conf
docker run -p 6380:6380 -d --name redis-6380 -v /root/re4dis-6380/conf/redis.conf:/redis.conf --restart=always redis redis-server /redis.conf
- 进入到容器内部,查看redis信息
docker exec -it redis-6380 /bin/bash
redis-cli
info replication
info replication命令可以打印出redis的节点相关信息,role后面会显示该节点是master或者slave,如果该节点为slave节点,那么还会显示主节点的ip和端口号,master_link_status的值为up表示从节点和主节点的关系已经连接上,为down则表示关系未连接。
- 验证主从复制功能
在master节点上 设置一个name的key
在slave节点上查看该key
可以看到name的值已经从master节点复制到了slave节点,证明主从复制功能实现成功。
我们在slave节点上新增数据会提示该节点只有只读的操作,不能写入。