1. 准備三台服務器,分別是10.0.100.157/158/159。其中157作為master,另外兩台作為slave。主服務器提供讀寫功能,而從服務器負責讀
2. 在文件的安裝目錄下安裝redis,我的是/opt
3. 通過以下命令下載redis安裝包
cd /opt wget http://download.redis.io/releases/redis-4.0.11.tar.gz
4.解壓下載下來的redis
tar -zxvf redis-4.0.11.tar.gz
5.安裝gcc
yum -y install gcc automake autoconf libtool make
6.進入redis-4.0.11目錄,輸入命令進行安裝
make
7. redis安裝好之后,在/opt下新建redis目錄,再將原來的redis-4.0.11下的5個文件移動到redis目錄下
[ opt]$ mkdir redis [ opt]$ cd redis-4.0.11/src/ [ src]$ cp redis-server /opt/redis [ src]$ cp redis-cli /opt/redis [ src]$ cp redis-benchmark /opt/redis [ src]$ cd .. [ redis-4.0.11]$ cp redis.conf /opt/redis [ redis-4.0.11]$ cp sentinel.conf /opt/redis
8. 修改服務器的redis.conf文件
vim /opt/redis/redis.conf
#bind 127.0.0.1 #把這一行注釋掉
protected-mode no # 把保護模式設置為no,如果這里是yes,那么修改為no daemonize yes #這里修改為yes,表示redis服務可以后台運行
slaveof 10.0.100.157 6379 #注意這一步只有從服務器要添加,標識從服務器隸屬的主服務器
9. 關閉防火牆
systemctl stop firewalld.service
10. 創建全局快捷方式
ln -s /opt/redis-4.0.11/src/redis-server /usr/bin/redis-server #注意根據自己的安裝路徑來做修改
11. 分別啟動redis服務,並查看redis的信息
redis-server redis.conf
redis-cli info
可以看到redis的主從復制已經成功了,接下來我們來實驗一下
至此,redis主從復制已經成功實現讀寫分離。
接下來是redis的哨兵模式
服務器上的redis進程和哨兵進程是不沖突的,所以直接在這三台服務器上部署哨兵進程
sentinel monitor mymaster 10.0.100.157 6379 2 #這里指的是監視哪一個redis集群,2代表的是主服務器掛了那么3個哨兵中2個確定掛了就可以隨機選一個當主節點
注意在主從中配置為主節點的redis 在配置sentinel.conf的時候
需要把這句話注釋掉 sentinel deny-scripts-reconfig yes 暫時我也不知道為什么 希望大佬看見能解釋下 感激不盡!!
13. 配置好之后,啟動服務
redis-server sentinel.conf --sentinel &
14. 通過如下命令可以查看哨兵信息
redis-cli -p 26379 INFO Sentinel
我們可以看到主節點是157,然后有兩個從節點,總共三個哨兵
15. 驗證是否符合預期
使用redis-cli shutdown命令將157的服務掛了,哨兵投票隨機選取一個服務器當做新的主服務器
接下來我們再看看能不能在159上面進行寫操作
結果符合預期,哨兵部署完畢