1.redis安裝與編譯
# 下載下傳,解壓,編譯redis
$ wget http://download.redis.io/releases/redis-5.0.0.tar.gz
$ tar xzf redis-5.0.0.tar.gz
# 進入到解壓目錄
$ cd redis-5.0.0
$ make
# 進入到redis-5.0.0/src 目錄下運作
$ make install
編譯後結果如下:
#在redis檔案夾下建立etc和bin目錄,将redis.conf拷貝到 etc下,常用的5個指令移動到bin目錄下
#啟動redis ,啟動之前編輯redis.conf 檔案将 daemonize選項 改為yes (背景啟動)
$ bin/redis-server etc/redis.conf
#驗證啟動是否成功
$ ps-ef |grep redis
#退出redis服務
$ Kill 程序号 或 pkill redis-server
2.叢集搭建
redis叢集至少需要2N+1個master節點(3個),在這裡我們搭建三個master節點,并且為每一個master再挂一個slave節點,總共6個節點.我們在這裡采用一台機器上建立6個redis執行個體,并将它們配置成叢集模式,搭建一個僞叢集,與真正的分布式配置方法幾乎一樣,搭建步驟如下:
2.1 在usr/local/下 建立檔案夾 redis-cluster ,在redis-cluster下建立 8001,8002,8003,8004,8005,8006檔案夾
2.2 将redis.conf拷貝至redis-cluster下的8001檔案夾下,修改配置檔案
- Daemonize yes
- Port 8001 (分别對每個機器的端口還進行設定)
- Bind 192.168.1.102 (必須綁定目前機器的ip,友善叢集定位機器,不綁定可能會出現循環查找節點及其的情況)
- Dir /usr/local/redis-cluster/8001/ (指定資料檔案存放位置,必須指定不同的目錄位置,否則可能丢失資料)
- Cluster-enable yes(啟動叢集模式)
- Cluster-config-file nodes-8001.conf (800x與前面的端口号對應上)
- Cluster-node-timeout 5000
- Appendonly yes (開啟aof模式)
2.3 将8001下的redis.conf配置檔案分别拷貝到剩餘的5個檔案下
2.4 将8002 8003 8004 8005 8006 下的配置檔案的 b,d,f 項進行相應修改,可在vim使用批量替換指令
:%s/源字元串/目的字元串/g
2.5 分别啟動6個執行個體
使用 ps -ef |grep redis檢視狀态
2.6 建立redis叢集(redis5.0使用redis-cli),5.0以下版本見下文
./redis-cli --cluster create 192.168.1.102:8001 192.168.1.102:8002 192.168.1.102:8003
192.168.1.102:8004 192.168.1.102:8005 192.168.1.102:8006 --cluster -replicas 1
在最後的replicas 1 指的是 主節點與從節點數的比例值.表示 master/slave=1
輸入yes之後可以看到 :
2.7 搭建完畢,開始驗證
- 連接配接任意一個用戶端 : ./redis-cli -c -h -p (-c表示叢集模式)
如: /usr/local/redis/bin/redis-cli -c -h 192.168.1.102 -p 8001
2.進行驗證: cluster info(檢視叢集資訊),cluster nodes(檢視節點清單)
3.
- 資料操作驗證,可以看到叢集是輪流向叢集中存入資料,取出資料時會自動重定向
- 關閉叢集需要逐個關閉: /usr/local/redis/bin/redis-cli -c -h 192.168.1.102 -p 8001 shutdown
分布式redis叢集
2.7 redis5.0以下的版本 搭建方法
- 由于redis叢集需要使用ruby指令,是以需要安裝ruby( redis5.0使用redis-cli建立叢集,是以不需此步驟
$ yum install ruby
$ yum install rubygems
$ gem install redis –version X.X.X(安裝redis和ruby的接口)
在redis/src下 使用redis-trib.rb指令建立叢集
建立完成,分别啟動6個執行個體,步驟同上.