1. 程式人生 > >redis叢集哨兵模式

redis叢集哨兵模式

一、redis 單點模式linux安裝步驟:
1. redis-4.0.2.tar.gz方式Linux伺服器對應位置
2. 解壓壓縮包: tar -zxvf redis-4.0.2.tar.gz
3. cd /jboss/redis-4.0.2
4. 安裝: make 出現it.s a good idea to run ‘make test’則表示安裝成功
5. cd /redis-4.0.2/src
6. 修改 redis.conf 檔案,參考
http://m.blog.csdn.net/article/details?id=51983884
注:為了能讓外網訪問你的redis,最好新增bind IP


很多網上說這個ip是配置能訪問本地的ip,實際測試感覺更像是redis對外開放的ip。不配置導致哨兵無法訪問到相應的redis埠。

  1. 啟動服務: ./redis-server ../redis.conf
  2. 檢視啟動埠 ps -ef |grep redis

二、Redis主從(一般為奇數個伺服器,這裡用最基本的三個)
安裝步驟:
1. redis-4.0.4.tar.gz方式Linux伺服器對應位置
2. 解壓壓縮包: tar -zxvf redis-4.0.2tar.gz
3. cd /jboss/redis-4.0.2
4. 安裝:make 出現it.s a good idea to run ‘make test’則表示安裝成功
5.在redis根目錄下建立資料夾,用來儲存列印的日誌和快照儲存的資料。
修改redis.conf配置檔案檔案,
啟動:
1、./src/redis-server 對應路徑的redis.conf 啟動redis服務2、./src/redis-cli -h IP -p 埠 -a 密碼 以連結對應埠
3、連結以後 info 檢視埠資訊,可以看到主從關係。
4、set key value 存值 get key 獲取值。
主從配置成功以後,只有master可以寫入,其他從服務只能讀取,資料共享
主從配置成功。

三、哨兵模式
每個redis服務都有一個預設的sentinel配置檔案,只需要修改裡面的配置,指向主redis服務和連線其他redis哨兵,即可配置redis哨兵服務。
修改sentinel配置檔案,具體參考:
啟動哨兵監視redis埠。
驗證:
shutdown 關閉主埠,連結從埠,info檢視資訊,主從關係變化。
例如:
role:slave當前角色是從服務
Master_host:主服務ip
Master_port:主服務埠
當從服務變成主服務,並且可以存值,說明哨兵成功。
原理:
哨兵會對相應埠定時請求,超過一定時間(sentinel檔案配置,單位毫秒)沒有 反饋,將會在從服務中選舉出一個做主服務。
此時連結其他埠輸入info,可以看到主服務變了。
重啟之前關閉的主服務,原來的主服務自動變從服務。
四、spring配置
詳見
Spring連結叢集有兩種方式,分片、哨兵。
1、分片
使用ShardedJedisPool
Java類使用的是ShardedJedisPool。樣例見JedisSentinelTest類
Spring配置檔案同樣原理。樣例見spring-redis
2、哨兵
使用JedisSentinelPool
Java類使用JedisSentinelPool獲取資源。樣例見JedisSentinelTest類。
Spring配置檔案同樣原理。

注:redis.conf最好指定bind IP,以便於其他埠訪問。

protected-mode yes可能導致外放無法訪問