摘要:redis的幾種部署方式的機制和原理,在windows試驗了,實踐部署文件windows:《主從+哨兵實踐.rar》,《集羣實踐.rar》,下文是關鍵步驟和原理html
主從node
在從庫redis從庫節點配置主庫就能夠,主庫會識別從庫,若是有密碼須要配置密碼redis
slaveof <masterip> <masterport>
複製代碼
哨兵算法
哨兵是檢測主庫從庫健康狀態的,當主庫掛掉後會把從庫升級爲主庫windows
監控redis主庫服務,主庫宕機會自動從其關聯的從庫選舉master節點bash
# 這個是Redis6379配置內容,其餘文件同理新增而後改一下端口便可,26380,和 26381。
#當前Sentinel服務運行的端口
port 26379
# 哨兵監聽的主服務器 2 是決定選舉的最低票數
sentinel monitor mymaster 127.0.0.1 6379 2
# 密碼
sentinel auth-pass mymaster 123
# 3s內mymaster無響應,則認爲mymaster宕機了
sentinel down-after-milliseconds mymaster 3000
#若是10秒後,mysater仍沒啓動過來,則啓動failover
sentinel failover-timeout mymaster 10000
# 執行故障轉移時, 最多有1個從服務器同時對新的主服務器進行同步
sentinel parallel-syncs mymaster 1
複製代碼
集羣分區服務器
twemproxy(中間件代理技術):把整個集羣空間邏輯計算爲16384個哈希槽, 有多少個分區就是把這些槽平均分爲多少份,經過hash計算每條數據應該存放在哪一個槽區間(意味着redis集羣擴容有上限,超過了這個就要用其餘處理方法),這個過程對客戶端是透明的---一致性哈希算法spa
集羣最好搭配主從使用,若是僅僅只是作主庫集羣(分片存儲),其中一個分片宕機了,那整個集羣就廢了。代理
redis-cluster把全部的物理節點映射到[0,16383]slot(槽)上,cluster負責維護node--slot--value 客戶端與redis節點直連,不須要鏈接集羣全部的節點,鏈接集羣中任何一個可用節點便可, 請求的數據若是不在當前鏈接節點redis會返回轉向指令,指向正確的節點code
一致性哈希算法
實踐要素 windows下搭建:
注意事項
#執行命令時候路徑不能存在中文,不然直接報錯
#把redis-trib.rb文件搞成utf8格式
redis-trib.rb create --replicas 0 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382
複製代碼