我是在一台服務器上安裝了三個redis 一主兩從
想安裝gcc gcc-c++ make tcl lrzsz
yum -y install gcc gcc-c++ make tcl lrzsz
上傳redis的tar包ls查看
我新建了/picclife的目錄將redis的包移到/picclife下
mv redis-4.0.1.tar.gz /picclife
解壓
tar -zxf redis-4.0.1.tar.gz
做個軟連接 方便以后升級
ln -s redis-4.0.1 redis
進入到剛建的連接里
cd redis
安裝
make && make install
查看是否安裝好(如出現版本號說明redis安裝成功)
redis-cli -v
在etc下創建redis目錄
mkdir /etc/redis
將redis的配置文件復制到剛健的redis的目錄里
cp /picclife/redis/redis.conf /etc/redis/redis_6379.conf
編輯
vim /etc/redis/redis_6379.conf
6379 端口的redis為主:在配置兩個6380 6381 為從
啟動主
redis-server /etc/redis/redis_6379.conf
在/etc/redis下在復制兩給redis的配置文件分別為reids_6380.conf redis_6381.conf
編輯
vim /etc/redis/redis_6380.conf
指定主的ip和端口
vim /etc/redis/redis_6381.conf
指定主的ip和端口
啟動
redis-server /etc/redis/redis_6380.conf
redis-server /etc/redis/redis_6381.conf
可以通過 info replication 命令查看主從同步的情況
至此redis的主從就配置好了下面開始配置哨兵sentinel
將redis下的sentinel.conf 復制到/etc/redis下分別是sentinel-6379.conf sentinel-6380.conf sentinel-6380.conf
編輯
vim sentinel-6379.conf
daemonize yes 默認沒有需要加 端口號 這個是默認的26379 ,logfile 是日志路徑
dir是工作目錄
指明主的ip和端口號 2 意思是必須有兩個sentinel認為主redis連接不上時,切換從為主,2的選擇是sentinel個數一半加1 ,我這里有3個sentinel
( 編輯哨兵配置文件更改如下(搜不到的字段可自己添加):
protected-mode no (去掉注釋)
daemonize yes (自行添加守護進程)
dir /tmp
logfile "/var/log/redis/redis_26379.log" (自行添加哨兵的日志)
sentinel monitor mymaster 192.168.52.138 6379 2 (原基礎上更改)
sentinel down-after-milliseconds mymaster 30000 (默認)
sentinel parallel-syncs mymaster 1 (默認)
sentinel failover-timeout mymaster 180000 (默認) )
其余的
sentinel-6380.conf sentinel-6380.conf 這兩個配置文件和上面的一樣,唯一不一樣的是 端口 日志路徑可以改為不一樣的
sentinel-6380.conf 端口是port 26380
sentinel-6380.conf 端口是port 26381
啟動sentinel
redis-sentinel /etc/redis/sentinel-6379.conf
redis-sentinel /etc/redis/sentinel-6380.conf
redis-sentinel /etc/redis/sentinel-6381.conf
啟動后可以到日志里查看信息
tail -f /redis_2379.log
現在就可以測試里 例:關掉主redsi
查看sentinel的日志會發現從選舉成主了
最后注意:我的sentinel 是安裝在一台服務器上,如果實在生產中最好分開安裝,不要咱庄在一台服務上,sentinel 一半安裝為單數。
到此redis的哨兵模式就搭建完成,謝謝