本節我們搭建Redis主從複製和哨兵模式叢集,叢集的好處是把資料分散到不同的伺服器上,解決網站中的很多高併發,高負載等問題,很好的提高網站的效能,也能解決mysql的資料讀寫問題,所以我們搭建叢集非常有必要,而且在大網站中都是必須上的技能-簡稱“快取必殺技”。
下面我們開始做好準備工作:
一、環境和版本
準備三臺Linux伺服器centos7系統(本地虛擬機器-土豪可以買雲上伺服器)
192.168.1.101
192.168.1.102
192.168.1.103
Redis:redis-6.0.3(最新版本)
二、Redis安裝與啟動(大家按步執行 )
1、下載redis(官方安裝方法)
[root@localhost local]# cd /usr/local/src
[root@localhost src]# wget http://download.redis.io/releases/redis-6.0.3.tar.gz
2、安裝解壓編譯安裝
[root@localhost src]# tar xzf redis-6.0.3.tar.gz
[root@localhost src]# cd redis-6.0.3
[root@localhost redis-6.0.3]# make
3、錯誤解決(出現以下錯誤)
a、執行:yum -y install gcc-c++
yum -y install gcc-c++
b、清除編譯檔案:make clean
make clean
c、然後執行:make
make
d、如果還報這個錯誤,刪除redis資料夾,重新解壓。
e、命令:
rm -rf redis-6.0.3
cd redis-6.0.3
make CFLAGS="-march=x86-64"
#執行這個命令才行,不然也是安裝失敗,如果你們直接make可以編譯完成就無需執行這個命令。
4、啟動服務
[root@localhost redis-6.0.3]# cd src
[root@localhost src]# redis-server redis.conf
5、配置程式啟動,修改/usr/local/src/redis.conf
daemonize yes
6、程式檢視關閉
[root@localhost redis-6.0.3]# ./src/redis-server redis.conf
[root@localhost redis-6.0.3]# ps -aux | grep redis
[root@localhost redis-6.0.3]# kill -9 840
三、配置開機啟動
1、相關配置
[root@localhost init.d]# cd /etc
[root@localhost etc]# mkdir redis
[root@localhost etc]# cp /usr/local/src/redis-6.0.3/redis.conf /etc/redis/6379.conf
[root@localhost etc]# cd redis/
[root@localhost redis]# cp /usr/local/src/redis-6.0.3 /utils/redis_init_script /etc/init.d/redisd
[root@localhost redis]# chkconfig redisd on #開機啟動命令
2、服務啟動關閉
[root@localhost redis]# service redisd start #開啟
[root@localhost redis]# service redisd stop #關閉
3、重啟虛擬機器檢視Redis狀態
[root@localhost ~]# ps -aux | grep redis
root 21907 0.0 0.4 145256 4504 pts/0 Sl+ 15:51 0:00 redis-server *:6379
root 21980 0.0 0.0 110228 888 pts/1 R+ 15:55 0:00 grep --color redis
四、解決客戶端連線問題
關閉防火牆,或者開放6379埠
firewalld的基本使用
啟動:systemctl start firewalld
關閉:systemctl stop firewalld
檢視狀態:systemctl status firewalld
開機禁用 :systemctl disable firewalld
開機啟用 :systemctl enable firewalld
修改redis.conf 配置
註釋掉:# bind 127.0.0.1
修改保護模式:protected-mode no
備註:以上配置只演示了一臺伺服器安裝redis,其他2臺按同樣方法進行安裝,先把redis服務安裝完成,再進入以下哨兵模式配置。
五、sentinel哨兵模式
1、基礎配置
192.168.1.101 主服務
192.168.1.102 從服務
192.168.1.103 從服務
2、配置主服務 redis.conf
requirepass 123456
masterauth 123456
3、配置從服務 redis.conf
requirepass 123456
slaveof 192.168.1.101 6379
masterauth 123456
4、配置sentinel.conf
protected-mode no
# sentinel monitor代表監控
# mymaster代表伺服器的名稱,可以自定義(不可重複即可),# 192.168.1.101 代表監控的主伺服器,6379代表埠,# 2 標識 >=2 哨兵認為主伺服器不可用,執行failover操作。
sentinel monitor mymaster 192.168.1.101 6379 2
sentinel auth-pass mymaster 123456
5、啟動服務(先主服務,後從服務)
[root@localhost src]#./redis-server ../redis.conf
[root@localhost src]#./redis-server ../sentinel.conf --sentinel
好了,主從複製叢集搭建完畢!
更多內容請關注公眾號(Laravel技術社群)
本作品採用《CC 協議》,轉載必須註明作者和本文連結