为什么需要主从复制
- 之前的redis都是单机版的,虽然配置了RDB+AOF可以保证数据安全,但是当该台redis挂掉的时候
- redis的恢复过程中,是不可以对外提供服务的
- 所以为了让redis可以做到高可用,也就是可以一直对外提供读服务,那么就需要做主从复制
- 主从复制总的来说有如下功能
- 1.容灾备份, 主服务器上的数据会备份到从服务器上
- 2.读写分离,主服务器可以写可以读,但是一般只负责写, 从服务器只可以读
主从复制的原理是什么
- 如下图:
- 设置node01为Master主服务
- 设置node02和node03为Slave从服务器
- 那么node01可以读写(一般提供写操作) ,node02和node03会实时和node01进行通信,同步数据到自己的服务器上
- node02和node03就可以对外提供读服务
- 如主挂了,redis集群只能提供读,不能提供写
- 后续可以提供其他方案(哨兵机制)

如何配置主从复制
- 1.lnode02与node03执行以下命令安装依赖环境
yum -y install gcc-c++
- 2.在node02 与node03上安装redis(与之前redis的安装一致)
scp -r /export/servers/redis/ node02:/export/servers/
scp -r /export/servers/redis/ node03:/export/servers/
mkdir -p /export/data/redis/6379/
cd /export/servers/redis/conf
vim redis_6379.conf
#修改bind值为node02的host
bind node02
#增加一行,表示node02是node01的小弟
slaveof node01 6379
#修改bind值为node03的host
bind node03
#增加一行,表示node03是node01的小弟
slaveof node01 6379
/export/servers/redis/bin/redis-server /export/servers/redis/conf/redis_6379.conf
ps -ef |grep redis
/export/servers/redis/bin/redis-cli -h node01
/export/servers/redis/bin/redis-cli -h node02
/export/servers/redis/bin/redis-cli -h node03
- node01可以读写操作,node02与node03只支持读取操作。