您好,登錄后才能下訂單哦!
Redis哨兵模式一主一備配置操作方法 ,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
1、將本地Redis文件拷貝出來,復制一份(默認安裝路徑:C:\Program Files\Redis),分別以端口命名,Redis_master_6379、Redis_slave_6380,由于原來有一個6379,所以直接在C:\Program Files\Redis\Reids_more目錄下新增6380文件夾以及各種配置啟動文件
2、先配置主從設置:
6379為主機,不做修改;
6380文件夾中,配置redis.windows.config文件:
#啟動端口
port 6380
#屬于IP為127.0.0.1端口為6379的從機
slaveof 127.0.0.1 6379
3、配置檢測哨兵
兩個文件夾中都需要新增一個哨兵檢測文件sentinel.conf
6379文件夾中sentinel.conf:
# 當前Sentinel服務運行的端口
port 26379
# 哨兵監聽的主服務器,最后的2表示投票數,1臺機器認為連不上127.0.0.1:6379端口就進行切換
sentinel monitor mymaster 127.0.0.1 6379 1
#要配置上master的認證密碼,否則監控不到
sentinel auth-pass mymaster Test@123
# 3s內mymaster無響應,則認為mymaster宕機了
sentinel down-after-milliseconds mymaster 3000
#如果10秒后,mysater仍沒啟動過來,則啟動failover
sentinel failover-timeout mymaster 10000
# 執行故障轉移時, 最多有3個從服務器同時對新的主服務器進行同步
sentinel parallel-syncs mymaster 3
6380文件夾中的sentinel.conf文件基本和上面一致,只需要修改對應的Sentinel服務運行的端口,6380修改為port 26380
4、在配置登錄密碼以及認證密碼
兩個文件夾中都需要配置:
在redis.windows.config文件中配置:
#登錄密碼
requirepass Test@123
#認證密碼
masterauth Test@123
5、配置啟動文件
新增Redis啟動腳本:startRedisServer.bat
@echo off redis-server.exe redis.windows.conf @pause
新增Redis-Sentinel啟動腳本:startRedisSentinel.bat
@echo off redis-server.exe sentinel.conf --sentinel @pause
再在C:\Program Files\Redis\Reids_more目錄配置windows啟動文件:
配置啟動startrRedis6379.cmd,其他同理!
@echo off cd Redis6379 startRedisServer.bat
配置啟動startrRedisSentinel26379.cmd,其他同理!
@echo off cd Redis6379 startRedisSentinel.bat at
6,現在就可以進行測試了,先啟動tomcat,然后向緩存中存入一定量的值
然后從上到下依次啟動,此時6379為主機,6380為備機。如果有多個備機,那么在啟動的時候中間需要稍等一下,否則兩個從機同時對主機進行緩存同步會比較卡,啟動好以后會有4個控制臺,兩個是redis的,兩個是哨兵的,端口分別為6379、6380、26379、26380
常用命令:
打開redis工作窗口: redis-cli -p 6379
密碼認證:auth Test@123
查看主從詳情:info replication
關閉服務:shutdown
查看緩存詳情:
主機情況:
從機情況:
此時可以進行宕機測試:
a、進入6380端口,關閉服務,發現對主機沒有影響,重啟6380端口redis,還是從機,重啟一段時間后開始同步主機緩存
b、進入6379端口,關閉服務,發現6380、6381端口均報錯,稍等幾秒后哨兵會發現此情況并開始切換主機,從多臺從機中選出一臺成為主機,然后會修改配置文件,原主機會新增一個slaveof IP port,然后所有的哨兵都會開始監測新主機的ip和port,重啟6379服務后,發現6379變成從機,主機現在是6381,使用redis-cli查看緩存,發現緩存還在服務其中
7、將Redis集群部署進項目
新增redis.properties文件,集中配置redis地址端口以及哨兵的地址端口等信息。
在spring-redis.xml文件中引入配置文件,然后配置哨兵的地址端口等信息。
8、項目測試
先關閉系統自帶的redis服務,再按照順序開啟主從機redis服務,再開啟哨兵監測服務,打開alarm下文件,發現緩存正常,后強制關閉6379端口服務,觀看哨兵控制臺發現主機正常切換到6381,然后查看redis緩存,發現正常,在頁面打開別的文件,發現可以正常向redis中添加,再次啟動6379,發現該端口已變為從機,可以正常從6381主機更新xml文件數據,測試結果正常
注意:
1、由于配置Redis的主從關系,需要一臺主機以及兩臺或者多臺從機。本地只能使用一臺電腦,所以在本地配置多個端口以實現多臺服務器的測試效果
2、所有操作都在本地Redis服務關閉的時候進行。右鍵我的電腦-管理然后可以查看電腦的服務開啟情況,否則會因為端口一致導致master啟動失敗
3、一定要在sentinel.conf文件中配置master的認證密碼:sentinel auth-pass mymaster Test@123,否則會導致在主機宕機以后哨兵不能準確檢測到情況導致自動切換主機失敗
4、在哨兵模式中,除了剛配置好第一次啟動的時候,其他時候并不存在絕對的主和從,當主機A宕機以后,從機B晉升成為主機B,A重啟以后也只會變成從機A,如果此時停下全部redis,可以發現,各部分Redis的配置文件中,監視的端口從主機A的端口變成主機B的端口,也就是說各部分的配置文件會隨著主機的改變而改變,主要改變部分就是配置的從機地址及端口(redis.windows.config中的slaveof IP port)和哨兵模式監聽的主服務器地址及端口(sentinel.conf中的sentinel monitor mymaster IP port quorun)
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。