跟燕青學Redis-Redis集羣安裝

前邊講了Redis主從複製(https://blog.csdn.net/weixin_44062339/article/details/103227944),即使有了主從複製,每個數據庫都要保存整個集羣中的所有數據,容易形成木桶效應。

使用Jedis實現了分片集羣,是由客戶端控制哪些key數據保存到哪個數據庫中,如果在水平擴容時就必須手動進行數據遷移,而且需要將整個集羣停止服務,這樣做非常不好的。

Redis3.0版本的一大特性就是集羣(Cluster),接下來我們一起學習集羣。

redis集羣架構圖

在這裏插入圖片描述
(1)所有的redis節點彼此互聯(PING-PONG機制),內部使用二進制協議優化傳輸速度和帶寬.
(2)節點的fail是通過集羣中超過半數的節點檢測失效時才生效.
(3)客戶端與redis節點直連,不需要中間proxy層.客戶端不需要連接集羣所有節點,連接集羣中任何一個可用節點即可
(4)redis-cluster把所有的物理節點映射到[0-16383]slot(插槽)上,cluster 負責維護node<->slot<->value

修改配置文件

1、 設置不同的端口,6379、6380、6381
2、 開啓集羣,cluster-enabled yes
3、 指定集羣的配置文件,cluster-config-file “nodes-xxxx.conf”
在這裏插入圖片描述

創建集羣

安裝ruby環境

因爲redis-trib.rb是有ruby語言編寫的所以需要安裝ruby環境。

yum -y install zlib ruby rubygems
gem install redis

手動安裝:
yum -y install zlib ruby rubygems
rz上傳redis-3.2.1.gem
gem install -l redis-3.2.1.gem

如果是Ubuntu系統:
apt install ruby
上傳redis-3.2.1.gem
gem install redis-3.2.1.gem

創建集羣

首先,進入redis的安裝包路徑下:
cd /usr/local/src/redis/redis-3.0.1/src/
在這裏插入圖片描述
執行命令:
./redis-trib.rb create --replicas 0 192.168.56.102:6379 192.168.56.102:6380 192.168.56.102:6381

–replicas 0:指定了從數據的數量爲0

注意:這裏不能使用127.0.0.1,否則在Jedis客戶端使用時無法連接到!

redis-trib用法:
在這裏插入圖片描述
在這裏插入圖片描述

測試

在這裏插入圖片描述
報錯: (error) MOVED 7638 127.0.0.1:6380 什麼原因?

因爲abc的hash槽信息是在6380上,現在使用redis-cli連接的6379,無法完成set操作,需要客戶端跟蹤重定向。

redis-cli -c
在這裏插入圖片描述
看到由6379跳轉到了6380,然後再進入6379看能否get到數據
在這裏插入圖片描述
還是被重定向到了6380,現在已經可以獲取到數據了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章