Redis 5 叢集搭建
阿新 • • 發佈:2018-12-09
實驗環境
在VMware中準備3個虛擬機器,每個虛擬機器部署2個redis,實現一個總共6個節的redis叢集。
redis服務使用單獨的redis使用者和使用者組啟動。所有檔案都在/home/redis目錄下。
- OS: CentOS-7-x86_64-Minimal-1804
- redis: redis-5.0.0
安裝配置
叢集規劃
- 192.168.212.141
- 192.168.212.142
- 192.168.212.143
[7001]: 192.168.212.141:7001,192.168.212.142:7001,192.168.212.143:7001
[7002]: 192.168.212.141:7002,192.168.212.142:7002,192.168.212.143:7002
單例項編譯安裝
原始碼包安裝需要gcc
yum install gcc-c++
新增redis使用者和使用者組
groupadd redis
useradd -g redis redis
編譯
編譯到當前目錄
cd /home/redis/redis-5.0.0
make
編譯到指定目錄
cd /home/redis/redis-5.0.0 make PREFIX=/home/redis/master install make PREFIX=/home/redis/slave install
啟動
直接執行bin/redis-server將以前端模式啟動,前端模式啟動的缺點是ssh命令視窗關閉則redis-server程式結束,不推薦使用此方法。
修改redis.conf配置檔案, daemonize yes 以後端模式啟動。
cd /home/redis/master/bin
./bin/redis-server ./redis.conf
埠配置,redis.conf
配置中如下配置項。
port 7001
叢集配置
redis 5.0以後叢集組網直接採用編譯包中的redis-cli
,直接採用c++編譯,不需要ruby環境。叢集組網命令如下:
./redis-cli --cluster create 192.168.212.141:7001 192.168.212.142:7001 192.168.212.143:7001 192.168.212.141:7002 192.168.212.142:7002 192.168.212.143:7002 --cluster-replicas 1
另外注意,由於linux防火牆問題,執行上面命令可能會遇到連線不通的,可以linux防火牆。
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動
測試
下載一個windows的客戶端Redis-x64-3.2.100.zip
,解壓后里面有個redis-cli.exe
,這個就是一個window客戶端工具,命令列裡面呼叫,具體命令如下:
D:\redis>redis-cli.exe -c -h 192.168.212.141 -p 7001
192.168.212.141:7001> keys *
(empty list or set)
192.168.212.141:7001> set itclj itclj20181114
-> Redirected to slot [14516] located at 192.168.212.143:7001
OK
192.168.212.143:7001> get itclj
"itclj20181114"
連線引數說明
-c : 表示連線叢集
-h : 表示連線的redis主機
-p : 表示連線的redis例項埠
參考
補充說明
redis 3.X 4.X叢集管理工具redis-trib.rb依賴ruby環境,首先需要安裝ruby環境,叢集配置方式如下。
安裝ruby
yum install ruby
yum install rubygems
安裝ruby和redis的介面程式
gem install redis
元件叢集
./redis-trib.rb --replicas 192.168.212.141:7001 192.168.212.142:7001 192.168.212.143:7001 192.168.212.141:7002 192.168.212.142:7002 192.168.212.143:7002