redis分佈式集羣概述
Redis 集羣是一個提供在多個Redis間節點間共享數據的程序集。
Redis集羣並不支持處理多個keys的命令,因爲這需要在不同的節點間移動數據,從而達不到像Redis那樣的性能,在高負載的情況下可能會導致不可預料的錯誤.
Redis 集羣通過分區來提供一定程度的可用性,在實際環境中當某個節點宕機或者不可達的情況下繼續處理命令.
Redis 集羣的優勢:
- 自動分割數據到不同的節點上。
- 整個集羣的部分節點失敗或者不可達的情況下能夠繼續處理命令。
如何搭建環境
- 集羣服務器配置
集羣中有三臺服務器,分別是192.168.56.101、192.168.56.103、192.168.56.105,預期搭建環境:三主三從,使用這三臺服務器上的7000/7001端口提供redis服務 - 安裝軟件
安裝ruby以及rubygems
sudo apt-get install ruby_full rubygems
安裝rubygems的redis包
sudo gem install redis
安裝redis 4.0.11
cd /usr/local/src
sudo wget http://download.redis.io/releases/redis-4.0.11.tar.gz
sudo tar zxf redis-4.0.11.tar.gz
cd redis-4.0.11
sudo make
sudo make test
sudo make install
- 配置集羣
配置文件 (創建工作目錄,生成配置文件)
sudo mkdir -p /usr/local/redis-cluster
cd /usr/local/redis-cluster
sudo mkdir 7000 7001
sudo cp /usr/local/src/redis-4.0.11/redis.conf /usr/local/redis-cluster/7000
sudo cp /usr/local/src/redis-4.0.11/redis.conf /usr/local/redis-cluster/7001
修改配置文件 步驟如下:
-
(1)綁定端口,port 7000
-
(2)註釋掉IP綁定,##bind 127.0.0.1
-
(3)指定數據存放路徑,dir /usr/local/redis-cluster/7000
-
(4)啓動集羣模式,cluster-enabled yes
-
(5)指定集羣節點配置文件,cluster-config-file nodes-7000.conf
-
(6)後臺啓動,daemonize yes
-
(7)指定集羣節點超時時間,cluster-node-timeout 5000
-
(8)修改pidfile配置,pidfile /var/run/redis_7000.pid
-
(9)將 protected-mode yes 修改爲 protected-mode no
啓動redis服務 (分別在各個服務器上執行以下命令)
sudo /usr/local/bin/redis-server /usr/local/redis-cluster/7000/redis.conf
sudo /usr/local/bin/redis-server /usr/local/redis-cluster/7001/redis.conf
啓動集羣 (在一個服務器節點上執行即可)
sudo /usr/local/src/redis-4.0.11/src/redis-trib.rb create --replicas 1 192.168.56.105:7000 192.168.56.105:7001 192.168.56.101:7000 192.168.56.101:7001 192.168.56.103:7000 192.168.56.103:7001
- 驗證是否正常工作
> 查詢集羣中的主節點
redis-cli -h 192.168.56.105 -p 7000 cluster nodes |grep master