Redis集羣進階-使用集羣



搭建集羣

現在我們已經有了六個正在運行中的 Redis 實例, 接下來我們需要使用這些實例來創建集羣, 併爲每個節點編寫配置文件。

通過使用 Redis 集羣命令行工具 redis-trib , 編寫節點配置文件的工作可以非常容易地完成: redis-trib 位於 Redis 源碼的 src 文件夾中, 它是一個 Ruby 程序, 這個程序通過向實例發送特殊命令來完成創建新集羣, 檢查集羣, 或者對集羣進行重新分片(reshared)等工作。

命令 (搭建集羣):

./redis-trib.rb create --replicas 1 127.0.0.1:6300 127.0.0.1:6301 127.0.0.1:6302

127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002

這個命令在這裏用於創建一個新的集羣, 選項--replicas 1 表示我們希望爲集羣中的每個主節點創建一個從節點。

之後跟着的其他參數則是這個集羣實例的地址列表,3個master3個slave

redis-trib 會打印出一份預想中的配置給你看, 如果你覺得沒問題的話, 就可以輸入 yes , redis-trib 就會將這份配置應用到集羣當中,讓各個節點開始互相通訊,最後可以得到如下信息:

[OK] All 16384 slots covered

這表示集羣中的16384個槽都有至少一個主節點在處理,集羣運行正常。

使用集羣

Redis 集羣現階段的一個問題是客戶端實現很少。 以下是一些實現:

1、redis-rb-cluster:該實現是對redis-rb的一個簡單包裝,高效地實現了與集羣進行通訊所需的最少語義(semantic)。

2、redis-py-cluster.

3、流行的Predis 曾經對早期的 Redis 集羣有過一定的支持, 但我不確定它對集羣的支持是否完整, 也不清楚它是否和最新版本的 Redis 集羣兼容 (因爲新版的 Redis 集羣將槽的數量從 4k 改爲 16k 了).

4、JAVA客戶端:Jedis最近添加了對集羣的支持,詳細請查看項目README中Jedis Cluster部分.

5、redis安裝包中redis-cli程序實現了對非常基本的集羣支持,可以使用命令redis-cli   -c來啓動(ex:redis-cli -c -p 7000 連接port7000 節點)。

         redis-cli 對集羣的支持是非常基本的, 所以它總是依靠 Redis 集羣節點來將它轉向(redirect)至正確的節點。一個真正的(serious)集羣客戶端應該做得比這更好: 它 應redis-cli 對集羣的支持是非常基本的, 所以它總是依靠 Redis 集羣節點來將它轉向(redirect)至正確的節點。一個真正的(serious)集羣客戶端應該做得比這更好: 它應該用緩存記錄起哈希槽與節點地址之間的映射(map), 從而直接將命令發送到正確的節點上面。這種映射只會在集羣的配置出現某些修改時變化, 比如說, 在一次故障轉移(failover)之後, 或者系統管理員通過添加節點或移除節點來修改了集羣的佈局(layout)之後, 諸如此類。該用緩存記錄起哈希槽與節點地址之間的映射(map), 從而直接將命令發送到正確的節點上面。這種映射只會在集羣的配置出現某些修改時變化, 比如說, 在一次故障轉移(failover)之後, 或者系統管理員通過添加節點或移除節點來修改了集羣的佈局(layout)之後, 諸如此類。

轉載自http://www.redis.cn/topics/cluster-tutorial.html

發佈了59 篇原創文章 · 獲贊 3 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章