973114 发表于 2018-11-2 11:57:18

Redis主从同步原理解析(实验)

  redis主从同步原理
  在主从数据同步过程中,
  master只在第一次同步时创建了RDB文件,用此做基础进行同步。
  之后的同步,都是通过增量传输命令的方式(AOF)进行同步。
  环境描述:
  master:192.168.2.100    不开启RDB和AOF
  slave:192.168.2.200    开启RDB和AOF
  配置信息:
  master:
  # vim etc/redis.conf
  #save 600 5         //禁用RDB
  appendonly no       //禁用AOF
  requirepass 123456      //指定验证密码
  slave:
  # vim etc/redis.conf
  save 600 5         //禁用RDB
  appendonly yes      //禁用AOF
  appendfilename "appendonly.aof"      //指定AOF文件
  appendfsync everysec                //每秒强制写入磁盘一次
  no-appendfsync-on-rewrite no      //在日志重写时,不进行命令追加操作
  auto-aof-rewrite-percentage 100            //当前AOF超过上一次AOF大小100%时重写
  auto-aof-rewrite-min-size 64mb         //日志重写最小值
  slaveof 192.168.2.100 6379          //指定主库IP和端口
  masterauth 123456          //指定主库登录密码
  启动redis:
  master:# redis-server etc/redis.conf
  slave:# redis-server etc/redis.conf
  观察同步过程:
  master:
  # redis-cli -a 123456
  127.0.0.1:6379> info replication         //查看主从关系是否正确
  127.0.0.1:6379> keys *               //此时,master安装目录下是没有RDB文件的
  (empty list or set)
  127.0.0.1:6379> set name zhagnsan       //创建key
  OK
  # ll /usr/local/redis-3.0.6-6379         //目录下生成一个RDB文件,用作和slave同步的基础
  -rw-r--r--1 root root    35 5月20 21:59 dump_6379.rdb
  slave:
  # redis-cli
  127.0.0.1:6379> info replication         //查看主从关系是否正确
  127.0.0.1:6379> keys *            //数据已同步
  1) "name"
  127.0.0.1:6379> get name
  "zhagnsan"
  # ll /usr/local/redis-3.0.6-6379         //目录下生成RDB文件和AOF文件
  -rw-r--r--1 root root    60 5月20 21:59 appendonly.aof
  -rw-r--r--1 root root    18 5月20 21:58 dump.rdb
  master:
  # redis-cli -a 123456
  127.0.0.1:6379> set age 26               //新增2个key
  OK
  127.0.0.1:6379> set home beijing
  OK
  # ll /usr/local/redis-3.0.6-6379         //RDB文件大小没变化
  -rw-r--r--1 root root    35 5月20 21:59 dump_6379.rdb
  slave:
  # redis-cli
  127.0.0.1:6379> keys *            //数据已同步
  1) "age"
  2) "name"
  3) "home"
  # ll /usr/local/redis-3.0.6-6379         //发现:RDB文件大小不变,变化的只是AOF
  -rw-r--r--1 root root   126 5月20 22:00 appendonly.aof
  -rw-r--r--1 root root    18 5月20 21:58 dump.rdb
  总结:在数据同步过程中,master只在第一次同步时创建了RDB文件,
  之后的同步,都是通过增量传输命令的方式进行同步。

页: [1]
查看完整版本: Redis主从同步原理解析(实验)