上一篇搭建了一主二從,並加入了哨兵,任何一個節點掛掉都不影響正常使用,實現了高可用。仍然存在一個問題,一主二從每個節點都存儲着全部數據,隨着業務龐大,數據量會超過節點容量,即便是redis可以配置清理策略,但也有極限,於是需要搭建redis集群,將數據分別存儲到不同的redis上,並且可以橫向擴展。
本節搭建三主三從,即三組一主一從。組內是主從關系,可以實現高可用;組間是集群關系,實現分工存儲。
開始搭建(2、3步所有redis節點都要做)
1、准備6台redis,都配置上 masterauth <master-password> (不清楚的可參考我的另一篇博客《Redis主從、哨兵》)
2、修改核心配置 vim /usr/local/redis/redis.conf
# 開啟集群模式 cluster-enabled yes # 每一個節點需要有一個配置文件,需要6份。每個節點處於集群的角色都需要告知其他所有節點,彼此知道,這個文件用於存儲集群模式下的集群狀態等信息,這個文件是由redis自己維護,我們不用管。如果你要重新創建集群,那么把這個文件刪了就行 cluster-config-file nodes-201.conf # 超時時間,超時則認為master宕機,隨后主備切換 cluster-node-timeout 5000 # 開啟AOF appendonly yes
3、刪除工作空間中rdb和aof文件
4、分別啟動6台redis
5、創建集群,在任一節點上執行以下命令,執行完會出現日志,6台的主從關系都會顯示。
##### # 注意1:如果你使用的是redis3.x版本,需要使用redis-trib.rb來構建集群,最新版使用C語言來構建了,這個要注意 # 注意2:以下為新版的redis構建方式 ##### # 創建集群,主節點和從節點比例為1,主從的對應關系會自動分配。 redis-cli --cluster create ip1:port1 ip2:port2 ip3:port3 ip4:port4 ip5:port5 ip6:port6 --cluster-replicas 1
6、檢查
redis-cli -a imooc --cluster check 192.168.25.64:6380
7、可自行測試其中一台或幾台掛掉是否依然可用。
至此,在保證了高可用的同時,也擴展了容量。
整理自慕課網《java架構師體系課》