天天看點

哨兵架構&redisCluster-Redis(五)

作者:後端從入門到精通

上篇文章介紹了主從架構以及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代表什麼意思呢?

我們正常需要開啟三個哨兵,當其中兩個哨兵與主節點斷開連接配接,則就發起重新選舉。)

哨兵架構&redisCluster-Redis(五)

由圖可以看到,我搭建的sentinel已經啟動成功,它本質也是一個redis服務。

StringRedisTemplate繼承RedisTemplate,前者采用string序列化政策,儲存的key和value都是序列化,後者是jdk序列化政策。

一般redis單節點配置不會超過10個g。

因為如果配置rdb或者重寫的時候,記憶體特别大的時候,會給主節點造成非常大的壓力,是以要小于10個G。

二、jedisCluster

哨兵架構&redisCluster-Redis(五)

高可用叢集架構,與前面的哨兵最大差別是,這邊會分片放,前面哨兵如果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然後修改配置

哨兵架構&redisCluster-Redis(五)

搭建好之後啟動,發現8001和8004啟動的服務程序和之前的不同,後面有cluster

繼續閱讀