Redis服務器具體配置redis
127.0.0.1 :6379(主)shell
127.0.0.1 :6380(從)服務器
127.0.0.1 :6381(從)spa
第一階段:slave與master創建鏈接
第二階段:slave向master發起同步請求
第三階段:slave接受master發來的dump.rdb數據
第四階段:slave載入dumo.rdb文件 code
1.首先要有3個redis實例,安裝1個redis,複製2個redis(redis-master ,redis-slave1,redis-slave2)orm
2.分別配置redis.conf 不一樣的port 不一樣的pid 不一樣的redis文件夾配置master的redis.conf server
redis-mater 配置默認不變ip
redis-slave1的redis.conf配置: 同步
pidfile /var/run/redis1.pid #改變pid的文件名 port 6380 #改變port端口號 dir /usr/local/redis1 #改變路徑 slaveof 127.0.0.1 6379 #綁定主的ip和端口
redis-slave2的redis.conf配置:it
pidfile /var/run/redis2.pid #改變pid的文件名 port 6381 #改變port端口號 dir /usr/local/redis2 #改變路徑 slaveof 127.0.0.1 6379 #綁定主的ip和端口
配置完成後就開啓這三個redis :分別跳到三個Redis實例中,執行對應命令
$:src/redis-server redis.conf
可是當主從的主,發生宕機時,數據確定就斷了,致使數據不能寫入,reids的做者也想到了這一點,因此在redis2.6以上中就有了reids的監控軟件sentinel(哨兵),sentinel會監控redis的主從是否存在,若是監控到主斷掉了,那麼就把從提高到主
建立一個實例 redis-sentinel , 打開 sentinel.conf配置以下
port 26379 #master sentinel monitor master1 127.0.0.1 6379 1 #填寫master的ip port sentinel down-after-milliseconds master1 3000 sentinel failover-timeout master1 900000 sentinel can-failover master1 yes sentinel parallel-syncs master1 2
啓動哨兵:
$: src/redis-sentinel sentinel.conf
通常一個master最好配置兩個sentinel才能作故障轉移