1. 程式人生 > >linux redis最新官方叢集安裝配置教程

linux redis最新官方叢集安裝配置教程

Redis叢集介紹

Redis 叢集是一個提供在多個Redis間節點間共享資料的程式集。

Redis叢集並不支援處理多個keys的命令,因為這需要在不同的節點間移動資料,從而達不到像Redis那樣的效能,在高負載的情況下可能會導致不可預料的錯誤.

Redis 叢集通過分割槽來提供一定程度的可用性,在實際環境中當某個節點宕機或者不可達的情況下繼續處理命令. Redis 叢集的優勢:

  • 自動分割資料到不同的節點上。
  • 整個叢集的部分節點失敗或者不可達的情況下能夠繼續處理命令。

Redis 叢集的資料分片

Redis 叢集沒有使用一致性hash, 而是引入了 雜湊槽的概念.

Redis 叢集有16384個雜湊槽,每個key通過CRC16校驗後對16384取模來決定放置哪個槽.叢集的每個節點負責一部分hash槽,舉個例子,比如當前叢集有3個節點,那麼:

  • 節點 A 包含 0 到 5500號雜湊槽.
  • 節點 B 包含5501 到 11000 號雜湊槽.
  • 節點 C 包含11001 到 16384號雜湊槽.

這種結構很容易新增或者刪除節點. 比如如果我想新添加個節點D, 我需要從節點 A, B, C中得部分槽到D上. 如果我想移除節點A,需要將A中的槽移到B和C節點上,然後將沒有任何槽的A節點從叢集中移除即可. 由於從一個節點將雜湊槽移動到另一個節點並不會停止服務,所以無論新增刪除或者改變某個節點的雜湊槽的數量都不會造成叢集不可用的狀態.

 

 

下面開始配置

一.環境準備

本文使用幾點三伺服器六節點配置,三主三從叢集,每臺伺服器上一主一備分佈

伺服器

redis1  10.0.0.1

redis2  10.0.0.2

redis3  10.0.0.3

分別在三臺伺服器上執行

 

安裝ruby環境:

yum install ruby

yum install rubygems

gem install redis

二.安裝部署

下載,解壓,編譯:

$ wget http://download.redis.io/releases/redis-4.0.9.tar.gz

$ tar xzf redis-4.0.9.tar.gz

$ cd redis-4.0.9

$ make

新建資料夾/usr/local/redis-cluster

cp -r redis-4.0.9  /usr/local/redis-cluster/redis-7000

cp -r redis-4.0.9  /usr/local/redis-cluster/redis-7001

cp  redis-4.0.9/redis-trib.rb  /usr/local/redis-cluster/     ####redis-trib.rb叢集管理檔案拷貝至資料夾下

修改redis.conf

port 7000  ##兩個埠分別修改成7000 7001

daemonize yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes

編寫redis啟動指令碼start-all.sh

cd redis-7000

nohup src/redis-server redis.conf >redis.log 2>&1 &

cd ..

cd redis-7001

nohup src/redis-server redis.conf >redis.log 2>&1 &

增加執行許可權

chmod +x start-all.sh

完成後每個redis-cluster資料夾下問價有

drwxr-xr-x 2 root root 4096 MAY 2 00:53  redis-7000
drwxr-xr-x 2 root root 4096 MAY 2 00:53  redis-7001
-rwxr-xr-x 1 root root 48141 MAY2 00:16  redis-trib.rb
-rw-r–r– 1 root root 252 MAY 2 00:55   start-all.sh

分別啟動三臺伺服器上所有節點

./start-all.sh

執行叢集建立命令

./redis-trib.rb create –replicas 1   10.0.0.1:7000 10.0.0.2:7000 10.0.0.3:7000  10.0.0.1:7001 10.0.0.2:7001 10.0.0.3:7001

如有報錯先停止節點再刪除生成的配置檔案nodes.conf,刪除redis的持久化檔案後再重啟redis,比如:appendonly.aof、dump.rdb

叢集建立成功進入相應資料夾使用命令檢視叢集資訊

./redis-cli -h 10.0.0.1 -p 7000 -c info

./redis-cli -h 10.0.0.1 -p 7001 -c info

顯示

# Replication
role:master
connected_slaves:1

說明叢集建立成功

 

本文出自張佃棟de部落格,轉載時請註明出處及相應連結。

本文永久連結: https://zhangdd.com/642.html