linux centos 7安裝redis並且配置主從復制和哨兵模式。一主二從三哨兵


1、VMware准備三台虛擬機(不會安裝的自行百度,再次不做贅述),我的配置如圖。三台虛擬機(centos 7),IP分別為192.168.124.19,192.168.124.20,192.168.124.21,其中20作為master(主服務器)。19和21為slave(從服務器)。主服務器可以讀寫,從服務器只讀不能寫。三台服務器上分別安裝redis,我的redis版本為4.0.11

tar xzvf redis-4.0.11.tar.gz

cd redis-4.0.11

make

make install

安裝gcc 
yum -y install gcc automake autoconf libtool make 

 

2、redis安裝好了之后,三台服務器分別把相關的文件拷貝到/usr/redis目錄下。先新建此目錄,然后在redis安裝目錄下的src目錄下面復制redis-server、redis-cli、redis-benchmark三個文件到/usr/redis。再從redis安裝目錄下復制redis.conf、sentinel.conf兩個文件到/usr/redis目錄下面。復制完之后,/usr/redis文件夾目錄如下,只有這5個文件

3、進入到/usr/redis目錄,修改兩個從服務器(也就是192.168.124.19,192.168.124.21這兩個)的redis.conf文件

# bind 127.0.0.1   #把這一行注釋掉
protected-mode no # 把保護模式設置為no,如果這里是yes,那么修改為no
port 6379 #端口號6379保持不變
daemonize no #這里修改為no,表示redis服務可以后台運行
slaveof 192.168.124.20 6379 #由於是從服務器,所以要配置其主服務器,配置格式:
slaveof 主IP 主端口號

 

4、修改主服務器(192.168.124.20)的redis.conf文件,因為是主服務器,所以不配置slaveof,其他相同

# bind 127.0.0.1   #把這一行注釋掉
protected-mode no # 把保護模式設置為no,如果這里是yes,那么修改為no
port 6379  #端口號6379保持不變
daemonize no  #這里修改為no,表示redis服務可以后台運行

 

5、關於redis的其他配置可以參考這個博客 https://www.cnblogs.com/zxtceq/p/7676911.html

6、修改完了配置之后,可以挨個啟動redis服務。這里啟動一點要帶上redis.conf,否則的話,redis會用默認配置,那剛才配置的就沒用了,所以要帶上redis.conf

redis-server redis.conf

 

這時候三個服務器的redis服務就已經全部啟動了,可以用info命令查看redis信息

redis-cli info

 

先看主服務器192.168.124.20,如圖。可以看到角色role是master,也就是主服務器,有兩個slave,slave0和slave1,說明配置正確

再看從服務器的信息info,在從服務器上執行redis-cli info命令,如圖。可以看到角色role是slave,也就是從服務器。master_link_status:up這說明主服務狀態正在運行,這里如果為down,那可能是主機的防火牆的原因,可以關閉防火牆,systemctl stop firewalld

7、試一試redis的讀寫,在主服務器上面可以寫,也就是set,在20上面執行,可以讀可以寫

在從服務器上,19上面,可以看到沒有寫的權限,只有讀的權限。可以在 主服務器上面寫,然后在從服務器上面讀取

8、到此,redis的主從復制已經搭建完成,然后再搞一下哨兵。其實哨兵也就是一個進程,用來監視這個redis集群。這里遵從一主二從三哨兵模式。這里有三台主機192.168.124.19,192.168.124.20,192.168.124.21,可以在這上面分別啟動一個哨兵進程。注意:哨兵進程和redis進程沒有關系,可以在一台主機上面啟動。(最開始學這里的時候我也是懵逼的,后來懂的),還記得開始的時候拷貝的幾個文件么,其中有一個就是sentinel.conf ,這個文件就是哨兵的配置文件。三個哨兵監控這個redis集群,如果主服務器掛了,那么三個哨兵就從從服務器里選一台作為主服務器,選舉機制一會在配置文件里面表明。

9、三台服務器上的哨兵配置相同的,這里寫一個,其他兩個都一樣的,修改配置文件sentinel.conf

protected-mode no  #關閉保護模式

port 26379  #端口號

dir "/tmp"   #目錄

sentinel parallel-syncs mymaster 1 #故障遷移的時候,復制的從服務器的個數

sentinel failover-timeout mymaster 180000 #故障遷移所需時間,也就是主服務器掛了之后,選舉新服務器的時間,如果這個時間還沒能選舉出來,那么就算選舉失敗

sentinel deny-scripts-reconfig yes sentinel monitor mymaster
192.168.124.20 6379 2 #這個是指哨兵監視哪個redis集群,這里監視的是192.168.124.20,6379是端口號,最后的2表示,如果主服務器掛了,3個哨兵中有2個投票選新的服務器,那么就可以進行故障遷移,選出了新的服務器 sentinel down-after-milliseconds mymaster 3000 #sentinel認為“主線下線”的一個閥值。

 

 10、挨個啟動哨兵模式,哨兵之間也是相互監控的

redis-server sentinel.conf --sentinel &

 

 11、這是,哨兵模式就已經啟動了,這時候就可以監視redis集群了,如果主服務器掛了之后就可進行故障轉移了,現在模擬主服務器掛掉,在20上執行,redis-cli shutdown,手動掛掉主服務器,如圖

可以看到,+switch,選了一個新的主服務器,也就是19.這時候看一看19的信息info如圖,19role為master,有一個從服務器21

試一試寫操作,是可以的

看一看21的info,主服務器變為19

12、再重新啟動掛掉的20,之后再看看19的info,有兩個slave,20和21.很成功。nice

 

 

 

Linux

安裝完redis單獨用命令:

redis-server
報錯:

-bash: redis-server: command not found
說明redis-server不是全局命令,那么假如到全局即可:

 假如我的redis安裝路徑是:/home/prod/redis/redis-4.0.8

ln -s /home/prod/redis/redis-4.0.8/src/redis-server /usr/bin/redis-server
將
redis-server
放到/usr/bin下即可(相當於創建一個全局快捷方式)
--------------------- 
作者:Mr.True 
來源:CSDN 
原文:https://blog.csdn.net/q258523454/article/details/81012518 
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

  

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM