CentOS7.8 環境搭建 Redis 主從複製和哨兵模式

Laravel技術社群發表於2020-05-20

本節我們搭建Redis主從複製和哨兵模式叢集,叢集的好處是把資料分散到不同的伺服器上,解決網站中的很多高併發,高負載等問題,很好的提高網站的效能,也能解決mysql的資料讀寫問題,所以我們搭建叢集非常有必要,而且在大網站中都是必須上的技能-簡稱“快取必殺技”。

下面我們開始做好準備工作:

一、環境和版本

準備三臺Linux伺服器centos7系統(本地虛擬機器-土豪可以買雲上伺服器)

192.168.1.101
192.168.1.102
192.168.1.103
Redis:redis-6.0.3(最新版本)

二、Redis安裝與啟動(大家按步執行 )

1、下載redis(官方安裝方法)

Centos7.8環境搭建Redis主從複製和哨兵模式

[root@localhost local]# cd /usr/local/src
[root@localhost src]# wget http://download.redis.io/releases/redis-6.0.3.tar.gz

Centos7.8環境搭建Redis主從複製和哨兵模式

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、錯誤解決(出現以下錯誤)

Centos7.8環境搭建Redis主從複製和哨兵模式

a、執行:yum -y install gcc-c++

yum -y install gcc-c++

Centos7.8環境搭建Redis主從複製和哨兵模式

b、清除編譯檔案:make clean

make clean

c、然後執行:make

make

d、如果還報這個錯誤,刪除redis資料夾,重新解壓。

Centos7.8環境搭建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

Centos7.8環境搭建Redis主從複製和哨兵模式

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

Centos7.8環境搭建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哨兵模式

Centos7.8環境搭建Redis主從複製和哨兵模式

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

Centos7.8環境搭建Redis主從複製和哨兵模式

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

Centos7.8環境搭建Redis主從複製和哨兵模式

好了,主從複製叢集搭建完畢!
更多內容請關注公眾號Laravel技術社群

本作品採用《CC 協議》,轉載必須註明作者和本文連結
讓程式設計成為一種習慣!

相關文章