輕鬆掌握元件啟動之Redis單機、主從、哨兵、叢集設定

2023-10-14 06:00:44

單機設定啟動

Redis安裝

下載地址:http://redis.io/download

安裝步驟:

1: 安裝gcc編譯器:yum install gcc

2: 將下載好的redis‐5.0.3.tar.gz檔案放置在/usr/local資料夾下,並解壓redis‐5.0.3.tar.gz檔案

wget http://download.redis.io/releases/redis‐5.0.3.tar.gz
 tar xzf redis‐5.0.3.tar.gz
 cd redis‐5.0.3

3: 切換到解壓後的redis‐5.0.3目錄下,完成編譯與安裝

make

4: 修改設定

 daemonize yes #後臺啟動
 protected‐mode no #關閉保護模式,開啟的話,只有本機才可以存取redis
 需要註釋掉bind
 #bind 127.0.0.1(bind繫結的是自己機器網路卡的ip,如果有多塊網路卡可以配多個ip,代表允許客戶
端通過機器的哪些網路卡ip去存取,內網一般可以不設定bind,註釋掉即可)

5: 啟動服務

 src/redis‐server redis.conf

6: 驗證服務是否成功啟動

 ps ‐ef | grep redis

7: 使用redis‐cli,進入redis使用者端

 src/redis‐cli

8: 退出使用者端

quit

9: 以下是三種退出redis服務方法:

  1. pkill redis‐server
  2. kill 程序號
  3. src/redis‐cli shutdown

Redis主從架構

redis主從架構搭建,設定從節點步驟:

1、複製一份redis.conf檔案:使用cp命令複製一份redis.conf檔案,以便對從節點進行設定。

2、修改從節點設定:開啟複製的redis.conf檔案,根據以下步驟修改相關設定:

 port 6380
 pidfile /var/run/redis_6380.pid # 把pid程序號寫入pidfile設定的檔案
 logfile "6380.log"

 dir /usr/local/redis‐5.0.3/data/6380 # 指定資料存放目錄
 # 需要註釋掉bind
 # bind 127.0.0.1(bind繫結的是自己機器網路卡的ip,如果有多塊網路卡可以配多個ip,代表允許使用者端通
過機器的哪些網路卡ip去存取,內網一般可以不設定bind,註釋掉即可)

3、使用replicaof設定主從複製

 replicaof 192.168.0.60 6379 # 從本機6379的redis範例複製資料,Redis 5.0之前使用slaveof
 replica‐read‐only yes # 設定從節點唯讀

4、開始啟動從節點

redis‐server redis.conf

5、登入從節點使用者端

redis‐cli ‐p 6380

6、測試在6379範例上寫資料,6380範例是否能及時同步新修改資料

7、通過以上的步驟,可以自己再設定一個6381的從節點

哨兵高可用架構

以下是構建Redis哨兵架構的步驟:

1、複製一份sentinel.conf檔案

cp sentinel.conf sentinel‐26379.conf

2、將sentinel‐2637.conf檔案中相關設定修改為以下數值:

 daemonize yes
 pidfile "/var/run/redis‐sentinel‐26379.pid"
 logfile "26379.log"
 dir "/usr/local/redis‐5.0.3/data"
 # sentinel monitor <master‐redis‐name> <master‐redis‐ip> <master‐redis‐port> <quorum>
 # quorum是一個數位,指明當有多少個sentinel認為一個master失效時(值一般為:sentinel總數/2 + 1),master才算真正失效
  sentinel monitor mymaster 192.168.0.60 6379 2 # mymaster這個名字隨便取,使用者端存取時會用到

3、使用sentinel‐26379.conf檔案啟動sentinel哨兵範例
src/redis‐sentinel sentinel‐26379.conf

4、檢視sentinel的info資訊

127.0.0.1:26379>info

可以看到Sentinel的info裡已經識別出了redis的主從

5、可以自己再設定兩個sentinel,埠26380和26381,注意上述組態檔裡的對應數位都要修改

高可用叢集模式

為了搭建一個redis叢集,我們需要至少三個主節點。在這裡,我們將搭建三個主節點,並且為每個主節點再搭建一個從節點,總共六個redis節點。我們將在三臺機器上部署這六個redis範例,每臺機器上都會有一個主節點和一個從節點。下面是搭建叢集的步驟:

1:在第一臺機器的/usr/local下建立一個名為redis-cluster的資料夾。然後在該資料夾下建立兩個資料夾,分別命名為:

mkdir ‐p /usr/local/redis‐cluster
mkdir 8001 8004

2:把之前的redis.conf組態檔複製到8001資料夾下,並對其進行以下修改:

daemonize yes
port 8001(分別對每個機器的埠號進行設定)
pidfile /var/run/redis_8001.pid # 把pid程序號寫入pidfile設定的檔案
dir /usr/local/redis‐cluster/8001/(指定資料檔案存放位置,必須要指定不同的目錄位置,不然會丟失資料)
cluster‐enabled yes(啟動叢集模式)
cluster‐config‐file nodes‐8001.conf(叢集節點資訊檔案,這裡800x最好和port對應上)
cluster‐node‐timeout 10000
# bind 127.0.0.1(bind繫結的是自己機器網路卡的ip,如果有多塊網路卡可以配多個ip,代表允許使用者端通過機器的哪些網路卡ip去存取,內網一般可以不設定bind,註釋掉即可)
protected‐mode no (關閉保護模式)
appendonly yes
#如果要設定密碼需要增加如下設定:
requirepass xiaoyu (設定redis存取密碼)
masterauth xiaoyu (設定叢集節點間存取密碼,跟上面一致)

3:將修改後的組態檔複製到8004資料夾下,並對該檔案進行批次替換以修改第2、3、4、6項中的埠號。

:%s/源字串/目的字串/g

4:需要對另外兩臺機器進行類似的操作。對於第二臺機器,使用8002和8005的埠號,對組態檔進行相應的修改。對於第三臺機器,則使用8003和8006的埠號進行修改。

5:請分別啟動6個Redis範例,並檢查它們是否成功啟動。

 /usr/local/redis‐5.0.3/src/redis‐server /usr/local/redis‐cluster/800*/redis.conf
 # 檢視是否啟動成功
 ps ‐ef | grep redis 

6:在Redis 5之前,要建立整個Redis叢集,需要使用redis-trib.rb指令碼。這個指令碼是用Ruby編寫的,並且在Redis 5版本中被廢棄了。現在,在Redis 5及更高版本中,你可以使用redis-cli來建立整個Redis叢集。

 # 下面命令裡的1代表為每個建立的主伺服器節點建立一個從伺服器節點
 # 執行這條命令需要確認三臺機器之間的redis範例要能相互存取,可以先簡單把所有機器防火牆關掉,如果不關閉防火牆則需要開啟redis伺服器埠和叢集節點gossip通訊埠16379(預設是在redis埠號上加1W)
 # 關閉防火牆
 # systemctl stop firewalld # 臨時關閉防火牆
 # systemctl disable firewalld # 禁止開機啟動
 # 注意:下面這條建立叢集的命令大家不要直接複製,裡面的空格編碼可能有問題導致建立叢集不成功
 (1)/usr/local/redis‐5.0.3/src/redis‐cli ‐a xiaoyu ‐‐cluster create ‐‐cluster‐replicas 1 192.168.0.61:8001 192.168.0.62:8002 192.168.0.63:8003 192.168.0.61:8004 192.168.0.62:8005 192.168.0.63:8006

7:驗證叢集

 (1)連線任意一個使用者端即可:./redis‐cli ‐c ‐h ‐p (‐a存取伺服器端密碼,‐c表示叢集模式,指定ip地址和埠號)
  如:/usr/local/redis‐5.0.3/src/redis‐cli ‐a xiaoyu ‐c ‐h 192.168.0.61 ‐p 800*
 (2)進行驗證: cluster info(檢視叢集資訊)、cluster nodes(檢視節點列表)
 (3)進行資料操作驗證
 (4)關閉叢集則需要逐個進行關閉,使用命令:
  /usr/local/redis‐5.0.3/src/redis‐cli ‐a xiaoyu ‐c ‐h 192.168.0.60 ‐p 800* shutdown

總結

以便讀者能夠更好地瞭解和使用Redis。本文主要介紹了Redis的單機設定啟動、主從架構、哨兵高可用架構和高可用叢集模式的步驟。其實沒什麼好說的,給以後的文章系列走個鋪墊而已,在以後的的文章系列中,我們將進一步深入探討Redis的高階功能和最佳實踐,幫助讀者更好地利用Redis來解決實際問題。