美國購買 iPhone SE 3 5G 更簡單:運營商控制權下降,蘋果上升
是什麼
Redis叢集實現了對Redis的水平擴容,即啟動N個redis節點,將整個資料庫分佈儲存在這N個節點中,每個節點儲存總資料的1/N.
Redis叢集通過分割槽來提供一定程度的可用性:即使叢集中有一部分節點失效或者無法進行通訊,叢集也可以繼續處理命令請求
實現步驟
-
刪除持久化資料 將rdb,aof檔案都刪除掉
-
製作6個例項,6379,6382,6381,6389,6390,6391 (叢集搭建至少要3個主節點)
-
配置基本資訊
include /myredis/redis.conf pidfile "/var/run/redis_6379.conf" port 6379 dbfilename "dump6379.rdb" cluster-enabled yes 開啟叢集模式 cluster-config-file nodes-6379.conf 設定節點配置檔名 cluster-node-timeout 15000
-
拷貝多份配置檔案,並進行相關修改
-
啟動6個redis服務
-
將6個節點合成一個叢集,組合之前,請確保所有redis例項啟動後,nodes-xxx.conf檔案都生成正常
注:低版本要先需要安裝ruby,再使用以下命令進行合成
./redis-trib.rb create --replicas 1 192.168.43.55:6379 192.168.43.55:6380 192.168.43.55:6381 192.168.43.55:6389 192.168.43.55:6390 192.168.43.55:6391
高版本,在/redis x.x.x/src中的redis-cli內建了ruby環境
redis-cli --cluster create --cluster-replicas 1 192.168.43.55:6379 192.168.43.55:6380 192.168.43.55:6381 192.168.43.55:6389 192.168.43.55:6390 192.168.43.55:6391
-
使用
redis-cli -c -p 6379
連線到一臺主機 -
什麼是slot
一個Redis叢集中包含16384個插槽(hashsolt),資料庫中的每個鍵都屬於這16384個插槽的其中一個。
舉個例子,如果一個叢集有三個主節點:
節點A負責處理0號至5460號插槽
節點B負責處理5461號至10922號插槽
節點C負責處理10923號至16383號插槽
故障恢復
如果某一段插槽的主節點down掉,那麼它的從節點升級為主節點,待主節點重新連線上後,它則變為從節點。
如果某一段插槽的主節點和從節點一起down,則根據配置決定
-
cluster-require-full-coverage為yes,那麼,整個叢集都down掉
-
cluster-require-full-coverage為no,那麼,該段插槽資料都不能使用,也無法儲存
優勢
-
實現擴容
-
分攤壓力
-
無中心化配置相對簡單
劣勢
-
多鍵操作是不被支援的
-