1. 程式人生 > >Redis 5 叢集搭建

Redis 5 叢集搭建

實驗環境

在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