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服務方法:
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來解決實際問題。