1、搭建Redis 主从复制
Master节点: 10.8.0.25
Slave1节点: 10.8.0.26
Slave2节点: 10.8.0.27
systemctl stop firewalld
setenforce 0

2、安装 Redis
yum install -y gcc gcc-c++ make

#下载
wget -p /opt http://download.redis.io/releases/redis-5.0.7.tar.gz
tar zxvf redis-5.0.7.tar.gz -C /opt/

cd /opt/redis-5.0.7/
make
make PREFIX=/usr/local/redis install

cd /opt/redis-5.0.7/utils
./install_server.sh
......
Please select the redis executable path /usr/local/bin/redis-server

/usr/local/redis/bin/redis-server
ln -s /usr/local/redis/bin/* /usr/local/bin/

3、修改 Redis 配置文件(Master节点操作)
vim /etc/redis/6379.conf
bind 0.0.0.0 #70行,修改监听地址为0.0.0.0
daemonize yes #137行,开启守护进程
logfile /var/log/redis_6379.log #172行,指定日志文件目录
dir /var/lib/redis/6379 #264行,指定工作目录
appendonly yes #700行,开启AOF持久化功能
重启
/etc/init.d/redis_6379 restart
4、修改 Redis 配置文件(Slave节点操作)
vim /etc/redis/6379.conf
bind 0.0.0.0 #70行,修改监听地址为0.0.0.0
daemonize yes #137行,开启守护进程
logfile /var/log/redis_6379.log #172行,指定日志文件目录
dir /var/lib/redis/6379 #264行,指定工作目录
#288 行,指定要同步的Master节点IP和端口
replicaof 10.8.0.25 6379
appendonly yes #700行,开启AOF持久化功能
重启
/etc/init.d/redis_6379 restart



5、验证主从效果
在Master节点上看日志:
tail -f /var/log/redis_6379.log

在Slave上
redis-cli
replicaof 10.8.0.25 6379 asks for synchronization


意思:当前从节点已经连上主库 10.8.0.25:6379
在Master节点上验证从节点:
redis-cli info replication
Replication
role:master
connected_slaves:2
slave0:ip=192.168.10.18,port=6379,state=online,offset=1246,lag=0
slave1:ip=192.168.10.19,port=6379,state=online,offset=1246,lag=1

connected_slaves:2:主节点成功识别 2 台从机
state=online:两台从节点都在线、同步链路正常
lag=0/1:延迟几乎为 0,同步非常及时
字段简单解读(面试常考)
role:master 当前是主节点
offset:复制偏移量,主从 offset 一致代表数据同步完成
lag:从节点复制延迟,单位秒,0/1 属于正常
repl_backlog:复制积压缓冲区,用于增量同步(部分同步 PSYNC)
接下来可以做的测试
主节点写入:set msg hello_redis
去两台从机执行 get msg,都能读到数据

从机尝试写入 set a 1,会报错(从节点默认只读)
