主从复制,是指将一台
Redis
服务器的数据,复制到其他的
Redis
服务器,主从是哨兵和集群模式能够 实施的基础。前者称为主节点(master)
,后者称为从节点
(slave),
数据的复制是单向的,只能由主节点到从节点。
模式大概为以下三类:
- 一主一从
- 一主多从
- 树状主从
我这里使用的操作系统是centos7,Docker 安装 Redis。安装方法参照菜鸟教程。
一、准备三个容器
docker run -d -p 5001:6379 --name redis1 redis
docker run -d -p 5002:6379 --name redis2 redis
docker run -d -p 5003:6379 --name redis3 redis
docker ps
二、命令开启主从
- name为redis1的容器为主库
- name为redis2 redis3容器为从库
分别进入redis1、redis2、redis3容器中,使用redis-cli进行设置 slaveof host port
注意:主节点可以不用主动设置,只需要设置从节点的时候,将ip和port指向主节点即可。
docker exec -it redis2 /bin/bash
docker exec -it redis3 /bin/bash
redis-cli
slaveof 192.168.137.151 5001
使用 info replication查询当前redis实例在集群中的角色
从节点
主节点
如果设置不小心目标主节点为从节点可以使用
slaveof no one
config set slave-read-only no
两条命令将从节点切换为主节点
测试主从写入 读取
主节点写入
如果是从节点则提示只读无法写入
从节点读取