【Redis】使用Redis Sentinel实现Redis HA
生活随笔
收集整理的這篇文章主要介紹了
【Redis】使用Redis Sentinel实现Redis HA
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
閱讀目錄
- 簡單介紹
- 章節(jié)1:配置Sentinel.conf
- 章節(jié)2:啟動Redis Sentinel
- 章節(jié)3:關(guān)閉master redis,測試failover
- 章節(jié)4:重新切換為最初的master
- 章節(jié)5:參考鏈接
簡單介紹
使用Redis Sentinel實現(xiàn)Redis HA。閱讀此文前,先閱讀文章:《【Redis】配置redis主從復(fù)制》http://www.cnblogs.com/ssslinppp/p/5661419.html?作者:ssslinppphttp://www.cnblogs.com/ssslinppp?配置redis主從IP和port:
| master and slave | ip | port |
| master | 127.0.0.1 | 6379 |
| slave1 | 127.0.0.1 | 6380 |
| slave2 | 127.0.0.1 | 6381 |
回到頂部
一、配置Sentinel.conf
上文中已經(jīng)創(chuàng)建的主從設(shè)備,截圖如下:如上圖所示:
- master:6379
- slave1:6380
- slave2:6380
sentinel配置文件如下:
解釋說明如下:>>> sentinel monitor mymaster 127.0.0.1 6379 1
- mymaster :為master redis的名稱;
- ip和port指定了6379端口的Redis為master;
- quorum:一般情況下會啟動多個redis sentinel作為分布式使用,當master掛掉之后,需要從若干個slave中推選出1個slave作為新的master,并將其他slave的slaveof設(shè)置指向這個新的master。而判斷master redis是否掛掉,需要sentinel 說了算,只有不少于quorum個sentinel認為master redis掛掉,才會進行failover。因為這里只啟動了一個sentinel,所以配置quorum為1,若是啟動了多個sentinel用于分布式,可以將quorum設(shè)置>1。
二、啟動Redis Sentinel
從上可以看出,master redis 為6379,而slave又兩個,分別為:6380和6381.此時在去觀察sentinel.conf,會發(fā)現(xiàn)sentinel.conf發(fā)生了變化,如下所示:
回到頂部
三、關(guān)閉master redis,測試failover
大約過去半分鐘,后會看到如下:
- slave 6380的日志記錄:
- 再看看sentinel的提示信息:
- 再來觀察sentinel.conf
可以對比最初的sentinel.conf
此時再分別看看6379/6380/6381的redis.conf:
- 6379的redis.conf
同時可以看到sentinel輸出如下信息:e
此時看看6379的日志信息:
- 6380的redis.conf
- 6381的redis.conf
已經(jīng)將slaveof自動修改為:6380(新的master)
測試新的同步信息:
從上面的輸出結(jié)果可以看出,redis 主從復(fù)制依然有效。
回到頂部
四、重新切換為最初的master
前面我們看到了當master掛掉時,sentinel會自動的從slave中挑選出一個作為master,并重新配置各redis實例的配置文件。當之前掛掉的master又重啟后,如果希望還是還原到原先的主從配置,可以通過如下操作來進行:登錄到sentinel,使用命令:
接下來我們來看看是否還原到之前的主從配置:
- 先看看sentinel的輸出信息:
查看sentinel的配置文件:
接下來看看3個redis.conf是否自動變化了(reconfigure)
- 6379的redis.conf
- 6380的redis.conf
在最后添加了:slaveof 127.0.0.1 6379;說明6380已經(jīng)從master重新變化為slave了。
- 6381的redis.conf
還可以通過如下方式進行說明:
回到頂部
五、參考鏈接
《【Redis】配置redis主從復(fù)制》http://www.cnblogs.com/ssslinppp/p/5661419.html?《Configuring Redis High Availability》?http://www.veritas.com/community/blogs/configuring-redis-high-availability?《Redis Sentinel Documentation》 http://redis.io/topics/sentinel?《Windows下Redis Sentinel部署》http://bbs.redis.cn/forum.php?mod=viewthread&tid=715?
來自為知筆記(Wiz)
總結(jié)
以上是生活随笔為你收集整理的【Redis】使用Redis Sentinel实现Redis HA的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java多线程同步代码块
- 下一篇: Redmine 数据库连接错误