redis集群配置:
建立6個(gè)redis服務(wù)器满着,配置如下:
Port分別為7000, 7001, 7002, 7003, 7004, 7005
Cluster_config_file分別為:nodes_7000.conf,nodes_7001.conf, nodes_7002.conf, nodes_7003.conf, nodes_7004.conf,nodes_7005.conf
Pidfile分別為: “/var/run/redis_7000.pid”,“/var/run/redis_7001.pid”, “/var/run/redis_7002.pid”, “/var/run/redis_7003.pid”,“/var/run/redis_7004.pid”, “/var/run/redis_7005.pid”
然后分別啟動(dòng)這6個(gè)redis服務(wù)器.
再使用如下命令將6個(gè)redis實(shí)例進(jìn)行主從關(guān)聯(lián)與數(shù)據(jù)分片:
redis-trib.rb? create?--replicas? 1? IP:7000 IP:7001? IP:7002 IP:7003? IP:7004? IP:7005
//create? --replicas 1表示為每臺(tái)主服務(wù)器分配一臺(tái)從服務(wù)器.
Redis集群報(bào)錯(cuò):
Error:ERR Slot 5798 is already busy (Redis::CommandError)
Solution:用redis-cli登錄到每個(gè)節(jié)點(diǎn)執(zhí)行flushall和cluster reset
運(yùn)行redis-trib.rb 命令時(shí)報(bào)錯(cuò):
Solution:yum -y?install?ruby
ruby-devel rubygems rpm-build
gem?install?redis
效果圖:
Redis主從配置:
在未設(shè)置bind?? IP與requirepass??password兩項(xiàng)配置時(shí),需要將protected-mode設(shè)置為no, 從而允許遠(yuǎn)程訪問.
主服務(wù)器配置:
從服務(wù)器配置:
Slaveof? IP? port?---------添加從屬服務(wù)器,參數(shù)為IP地址压真、端口號(hào)
主備切換配置:
Sentinel.conf:
sentinel monitor master-6379 127.0.0.1 6379 1--------哨兵監(jiān)視服務(wù)器,參數(shù)為被監(jiān)視服務(wù)器的名稱(自己設(shè)定)凯正、IP拍埠、端口號(hào)、主備切換條件(同意切換主備的哨兵個(gè)數(shù))
sentinel failover-timeout master-6379 900000---------哨兵切換主備的條件勺届,參數(shù)為被監(jiān)視服務(wù)器名稱绷柒、時(shí)間間隔(在被監(jiān)視服務(wù)器失去聯(lián)系900000毫秒后切換主備服務(wù)器)
down-after-milliseconds 選項(xiàng)指定了Sentinel 認(rèn)為服務(wù)器已經(jīng)斷線所需的毫秒數(shù)。
parallel-syncs 選項(xiàng)指定了在執(zhí)行故障轉(zhuǎn)移時(shí)涮因,最多可以有多少個(gè)從服務(wù)器同時(shí)對(duì)新的主服務(wù)器進(jìn)行同步废睦,這個(gè)數(shù)字越小,完成故障轉(zhuǎn)移所需的時(shí)間就越長养泡。