主从原理

主从模式 - 图1
首先slave连接到master,master会启动一个线程,并把最新的RDB文件发送给slave的,slave拿到之后做的第一件事情就是写进本地的磁盘,然后加载进内存。这个过程可能有新的写请求,master会通过AOF增量日志的方式将新数据同步给slave,就像MySQLBinlog一样,把日志增量同步给slave服务

部署

master

  1. # 修改redis.conf
  2. vim redis.conf
  3. bind 0.0.0.0
  4. port 6379
  5. logfile "6379.log"
  6. dbfilename "dump-6379.rdb"
  7. daemonize yes
  8. rdbcompression yes
  9. # 启动服务
  10. [root@redis1 bin]# ./redis-server redis.conf

slave

  1. # 修改redis.conf
  2. vim redis.conf
  3. bind 0.0.0.0
  4. port 6380
  5. logfile "6380.log"
  6. dbfilename "dump-6380.rdb"
  7. daemonize yes
  8. rdbcompression yes
  9. slaveof 192.168.0.12 6379
  10. # 启动服务
  11. [root@redis2 bin]# ./redis-server redis.conf
  12. # 从机连接6380的客户端,查看同步数据
  13. [root@redis2 bin]# ./redis-cli -p 6380
  14. 127.0.0.1:6380> get nu
  15. "4"

注意:

  1. 主机一旦发生增删改操作,那么从机会将数据同步到从机中
  2. 从机不能执行写操作,会报错
    1. [root@redis2 bin]# ./redis-cli -p 6380
    2. 127.0.0.1:6380> set test 123
    3. (error) READONLY You can't write against a read only slave.