redis主從同步redis
原理數據庫
1 在開啓主從複製的時候,使用的是RDB方式的,同步主從數據的
二、同步開始以後,經過主庫命令傳播的方式,主動的複製方式實現
三、2.8之後實現PSYNC的機制,實現斷線重連vim
主redis配置信息服務器
vim redis-6379.conf測試
port 6379 daemonize yes pidfile /data/6379/redis.pid loglevel notice logfile "/data/6379/redis.log" dir /data/6379 protected-mode yes dbfilename dbmp.rdb save 900 1 save 300 10 save 60 10000
倆從配置信息, redis-6380.conf 和redis-6381.conf 信息同樣,除了port不同code
vim redis-6380.confserver
port 6380 daemonize yes pidfile /data/6380/redis.pid loglevel notice logfile "/data/6380/redis.log" dir /data/6380 protected-mode yes dbfilename dbmp.rdb save 900 1 save 300 10 save 60 10000 slaveof 127.0.0.1 6379
啓動三個數據庫,blog
redis-server /data/6380/redis.conf redis-server /data/6381/redis.conf redis-server /data/6382/redis.conf
啓動三個數據庫的實例,查看主從同步關係進程
redis-cli -p 6379 info replication redis-cli -p 6380 info replication redis-cli -p 6381 info replication
測試寫入數據,主庫寫入數據,檢查從庫數據get
主 127.0.0.1:6379> set name chaoge 從 127.0.0.1:6381>get name
模擬主庫宕機,而後手動進行主從複製故障切換
# 查看主庫進程 ps -ef |grep redis 殺死主庫進程 kill -p 主庫進程號
檢查從庫信息
redis-cli -p 6380 info replication redis-cli -p 6381 info replication
關閉6380從庫身份
127.0.0.1:6380>slaveof no one
給6381新的主人身份
127.0.0.1:6381> SLAVEOF no one 127.0.0.1:6381> SLAVEOF 127.0.0.1 6381
檢查6380和6381的主從信息
還得修改配置文件,永久生效還得修改配置文件,永久生效還得修改配置文件,永久生效