redis哨兵模式安裝
環境 centos 7.4
單機模式
將 redis-3.0.0.rar.gz 上傳到 /usr/local/src/
進入 存放壓縮包的目錄
cd /usr/local/src/
對壓縮包進行解壓
tar -zxvf redis-3.0.0.tar.gz
mv redis-3.0.0 /usr/local/
進入解壓後的目錄進行編譯
cd /usr/local/redis-3.0.0
安裝到指定目錄 如 /usr/local/redis
make PREFIX=/usr/local/redis install
redis.conf是redis的配置檔案,redis.conf在redis原始碼目錄。拷貝配置檔案到安裝目錄下,進入原始碼目錄,裡面有一份配置檔案 redis.conf,然後將其拷貝到安裝路徑下
cd /usr/local/redis
mkdir conf
cp /usr/local/redis-3.0.0/redis.conf /usr/local/redis/bin
進入安裝目錄bin下
cd /usr/local/redis/bin
基本使用命令
後臺啟動:./redis-server /usr/local/redis/conf/redis.conf &
關閉:./redis-cli shutdown
基於主從複製
在從 redis 上配置
slaveof 172.16.91.217 6379 # 指定 主redis 的 ip 以及埠
slave-read-only yes # 設定 從只讀
slave-serve-stale-data no # 當redis 從和主斷開連線或者正在同步資料的時候,該選項為no的時候會提示無法寫入,一般建議關閉
登入 到從 ,輸入info
role:slave
master_host:172.16.91.217
master_port:6379
哨兵模式
從 解壓的原始碼目錄,copy 檔案 sentinel.conf 到 /usr/local/redis/etc/
cp /usr/local/redis-3.0.0/sentinel.conf /usr/local/redis/conf/
修改 sentinel.conf 檔案
# vim /usr/local/redis/conf/redis.conf
port 26379
# redis 工作目錄
dir "/usr/local/redis-sentine"
daemonize yes
logfile "./sentinel.log"
# 設定 master 資訊和投票次數
sentinel monitor mymaster 172.16.91.217 6379 1
# master或slave多長時間(預設30秒)不能使用後標記為s_down狀態
sentinel down-after-milliseconds mymaster 5000
sentinel config-epoch mymaster 3
sentinel leader-epoch mymaster 3
sentinel known-slave mymaster 172.16.91.219 6379
sentinel known-sentinel mymaster 172.16.91.219 26379 a110681c92b40b8395b0dae1f3d550d73e73b6f4
sentinel current-epoch 3
要在 建一個 /usr/local/redis-sentine
啟動 sentinel 哨兵
/usr/local/redis/bin/redis-server /usr/local/redis/etc/sentinel.conf --sentinel &
把 主 redis 停掉 ,檢視 日誌 ,發現已經 切換到從伺服器了
tail -f -n 500 /usr/local/redis-sentine/sentinel.log
2356:X 31 Oct 14:20:57.205 # +switch-master mymaster 172.16.91.219 6379 172.16.91.217 6379
2356:X 31 Oct 14:20:57.205 * +slave slave 172.16.91.219:6379 172.16.91.219 6379 @ mymaster 172.16.91.217 6379
2356:X 31 Oct 14:21:07.262 * +convert-to-slave slave 172.16.91.219:6379 172.16.91.219 6379 @ mymaster 172.16.91.217 6379