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