十二、Redis主从配置

  • 分别按照之前介绍的步骤安装好redis并启动

  • master 配置文件不用动

  • slave配置文件上加一行:slaveof 192.168.1.200 6379

  • masterauth szk  #如果主上设置了密码,要加这行

  • 分别启动master和slave

tail /usr/local/redis/var/redis.log 

3966] 18 Feb 15:02:58.330 * MASTER <-> SLAVE sync: receiving 192 bytes from master
[3966] 18 Feb 15:02:58.330 * MASTER <-> SLAVE sync: Flushing old data
[3966] 18 Feb 15:02:58.330 * MASTER <-> SLAVE sync: Loading DB in memory
[3966] 18 Feb 15:02:58.330 * MASTER <-> SLAVE sync: Finished with success
[3966] 18 Feb 15:03:03.344 - DB 0: 7 keys (0 volatile) in 8 slots HT.
[3966] 18 Feb 15:03:03.344 - 1 clients connected (0 slaves), 466840 bytes in use
[3966] 18 Feb 15:03:08.396 - DB 0: 7 keys (0 volatile) in 8 slots HT.
[3966] 18 Feb 15:03:08.397 - 1 clients connected (0 slaves), 466848 bytes in use

测试:
/usr/local/redis/bin/redis-cli -a szk           主

127.0.0.1:6379> set key1 szk
OK
127.0.0.1:6379> get key1            
"szk"

/usr/local/redis/bin/redis-cli             从
127.0.0.1:6379> get key1
"szk"

OK

十三、Redis主从其他相关配置

  • slave-read-only yes #让从只读

  • repl-ping-slave-period 10  #设置slave向master发起ping的频率,每10s发起一次

  • repl-timeout 60  #设置slave ping不同master多少s后就超时

  • repl-disable-tcp-nodelay no  #是否开启tcp_nodeay,开启后将会使用更少的带宽,但会有延迟,所以建议关闭

  • repl-backlog-size 1mb  #同步队列的长度,backuplog是master的一个缓冲区,主从断开后,master会先把数据写到缓冲区,slave再次连接会从缓冲区中同步数据

  • repl-backlog-ttl 3600  #主从断开后,缓冲区的有效期,默认1小时

  • slave-priority 100  #多个slave是可以设置优先级的,数值越小优先级越高,应用于集群中,支持slave切换为mster,优先级最高的才会切换

  • min-slave-to-write 3 #和下面的一起使用,它的意思是master发现有超过3个slave的延迟高于10s,那么master就会暂时停止写操作。这两个数值任何一个为0,则关闭该功能,默认第一数值是0

  • min-slaves-max-log 10