上篇文章介紹了主從架構以及lua腳本。
一、Sentinel叢集
主從的搭建我們已經完成,但如果主節點當機,這時候導緻整個redis服務不可用怎麼辦呢?
運維可以手動重新開機主節點,或者手動去修改從節點,把從節點改為主節點。
但redis本身由哨兵,我們可以通過配置哨兵來監聽主節點是否當機,當機發起選舉新的主節點。
第一步:cp sentinel.conf sentaine_26379.conf
第二步:
port 26379
daemonize yes
pidfile “/var/run/redis-sentinel-26379.pid”
logfile “26379.log”
dir “/user/local/redis-5.0.3/data”
sentinel monitor mymaster 192.168.0.70 6379 2
此處mymaster名字是可以随便取的,也可以取mymaster1 或者matser2
(這裡2代表什麼意思呢?
我們正常需要開啟三個哨兵,當其中兩個哨兵與主節點斷開連接配接,則就發起重新選舉。)
由圖可以看到,我搭建的sentinel已經啟動成功,它本質也是一個redis服務。
StringRedisTemplate繼承RedisTemplate,前者采用string序列化政策,儲存的key和value都是序列化,後者是jdk序列化政策。
一般redis單節點配置不會超過10個g。
因為如果配置rdb或者重寫的時候,記憶體特别大的時候,會給主節點造成非常大的壓力,是以要小于10個G。
二、jedisCluster
高可用叢集架構,與前面的哨兵最大差別是,這邊會分片放,前面哨兵如果master放10個g,那麼這裡的cluster則會分成三部分,分别為3個g,3個g,4個g。
第一步:mkdir redis-cluster
mkdir 8001 8004
第二步:cp redis.conf 到8001下面
修改配置:
daemonize yes
Port 8001
Dir /usr/local/redis-cluster/8001/
# 啟動叢集指令yes
Cluster-enabled yes
Cluster-config-file nodes-8001.conf
Cluster-node-timeout 5000
# bind 127.0.0.1
# 關閉保護模式
Protected-mode no
appendonly yes
# 設定密碼如下
# 設定redis通路密碼
Requirepass keying
# 設定叢集節點間通路密碼
Masterauth keying
第三步:如上複制到8004然後修改配置
搭建好之後啟動,發現8001和8004啟動的服務程序和之前的不同,後面有cluster