Redis搭建哨兵模式並且與spring結合

1.啓動一個主redis

./redis-server ../redis.conf
配置redis.conf設置守護線程爲打開


2.啓動一個從redis

./redis-server ../redis.conf
./redis-cli -h 127.0.0.1 -p 6380
SLAVEOF 127.0.0.1 6379

3.啓動一個哨兵

配置 sentinel.conf

1. port :當前 Sentinel服務運行的端口
2. dir :  Sentinel服務運行時使用的臨時文件夾
3. sentinel monitor master001 192.168 . 110.101 6379 2 : Sentinel去監視一個名爲 master001 的主redis實例,這個主實例的IP地址爲本機地址 192.168 . 110.101 ,端口號爲 6379 ,而將這個主實例判斷爲失效至少需要 2 個 Sentinel進程的同意,只要同意Sentinel的數量不達標,自動failover就不會執行
4. sentinel down - after - milliseconds master001 30000 : 指定了Sentinel認爲Redis實例已經失效所需的毫秒數。 當實例超過該時間沒有返回PING,或者直接返回錯誤,那麼Sentinel將這個實例標記爲主觀下線。只有一個 Sentinel進程將實例標記爲主觀下線並不一定會引起實例的自動故障遷移:只有在足夠數量的Sentinel都將一個實例標記爲主觀下線之後,實例纔會被標記爲客觀下線,這時自動故障遷移纔會執行
5. sentinel parallel - syncs master001 1 : 指定了在執行故障轉移時,最多可以有多少個從Redis實例在同步新的主實例,在從Redis實例較多的情況下這個數字越小,同步的時間越長,完成故障轉移所需的時間就越長
6. sentinel failover - timeout master001 180000 : 如果在該時間(ms)內未能完成failover操作,則認爲該failover失敗
7. sentinel notification-script <master-name> <script-path> : 指定sentinel檢測到該監控的redis實例指向的實例異常時,調用的報警腳本。該配置項可選,但是很常用

啓動sentinel

./redis-sentinel ../sentinel.conf &

4.spring整合

<bean id="jedisSentinelPool" class="redis.clients.jedis.JedisSentinelPool">
        <constructor-arg index="0" value="mymaster"/>
        <constructor-arg index="1">
            <set>
                <value>127.0.0.1:26379</value>
            </set>
        </constructor-arg>
    </bean>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章