Redis-集羣構建

1.背景分析

redis使用中遇到的瓶頸

  我們日常在對於redis的使用中,經常會遇到一些問題

  1、高可用問題,如何保證redis的持續高可用性。

  2、容量問題,單實例redis內存無法無限擴充,達到32G後就進入了64位世界,性能下降。

  3、併發性能問題,redis號稱單實例10萬併發,但也是有盡頭的。

 

redis-cluster的優勢  

  1、官方推薦,毋庸置疑。

  2、去中心化,集羣最大可增加1000個節點,性能隨節點增加而線性擴展。

  3、管理方便,後續可自行增加或摘除節點,移動分槽等等。

  4、簡單,易上手。

 

redis-cluster名詞介紹

  1、master  主節點、

  2、slave   從節點

  3、slot    槽,一共有16384數據分槽,分佈在集羣的所有主節點中。

 

redis-cluster簡介

 

redis-cluster

 

圖中描述的是六個redis實例構成的集羣

6379端口爲客戶端通訊端口

16379端口爲集羣總線端口

集羣內部劃分爲16384個數據分槽,分佈在三個主redis中。

從redis中沒有分槽,不會參與集羣投票,也不會幫忙加快讀取數據,僅僅作爲主機的備份。

三個主節點中平均分佈着16384數據分槽的三分之一,每個節點中不會存有有重複數據,僅僅有自己的從機幫忙冗餘。

 

2.環境準備

    Ruby語言運行環境、Ruby下的RubyGems、以及創建Redis集羣的工具redis-trib.rb命令文件。

 

3.安裝redis

    下載地址:http://download.redis.io/releases/ 可以選擇自己使用的版本(集羣使用3.0版本以上),本次使用3.0.5版本作爲示例

    解壓後,大概目錄爲下圖:

    可以點擊一下redis-server.exe執行一下,是否可以啓動成功,如下圖:

    集羣搭建:

    把 redis 解壓後,再複製出額外6份,配置 三主三從集羣。 由於 redis 默認端口號爲 6379,那麼其它6份的端口可以爲6380,6381,6382,6383,6384,6385。 並且把目錄使用名字+端口號命名

複製文件redis.windows.conf爲redis.conf,添加內容爲下圖:

    依次修改port爲6380、63816382638363846385。如果cluster-enabled 不爲yes, 那麼在使用JedisCluster集羣代碼獲取的時候,會報錯。cluster-node-timeout 調整爲  5000,那麼在創建集羣的時候,不會超時。cluster-config-file nodes.conf 是爲該節點的配置信息,這裏使用 nodes.conf命名方法。服務啓動後會在目錄生成該文件。

    每個redis服務的啓動方式如下圖:

依次啓動六個服務,顯示啓動成功。

 

4.安裝ruby

   下載地址:http://www.ruby-lang.org/en/downloads/ 也可以到開源網站獲取,本次使用rubyinstaller-2.2.6-x64進行演示

    安裝過程簡單:

4.1 安裝Redis的Ruby驅動redis-xxxx.gem

下載地址 https://rubygems.org/pages/download,下載後解壓,當前目錄切換到解壓目錄中,如 D:\rubygems-2.6.12 然後點擊執行文件執行 ruby setup.rb。

4.2 安裝集羣腳本redis-trib

 

下載地址  https://raw.githubusercontent.com/antirez/redis/unstable/src/redis-trib.rb

打開該鏈接如果沒有下載,而是打開一個頁面,那麼將該頁面保存爲redis-trib.rb,建議保存到一個Redis的目錄下,例如放到6380目錄下。

集羣的命令爲 

redis-trib.rb create --replicas 1  127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385

--replicas 1 表示每個主數據庫擁有從數據庫個數爲1。master節點不能少於3個,所以我們用了6個redis

 

4.3 構建集羣

把每個節點下服務啓動, 在切換到redis目錄在命令行中執行  redis-trib.rb create --replicas 1 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385,如下圖,啓動成功:

 
在出現 Can I set the above configuration? (type 'yes' to accept):   請確定並輸入 yes 。成功後的結果如下:

4.4 測試集羣

使用Redis客戶端Redis-cli.exe來查看數據記錄數,以及集羣相關信息

命令 redis-cli –c –h ”地址” –p "端口號" ;  c 表示集羣

輸入dbsize查詢 記錄總數

輸入cluster info可以從客戶端的查看集羣的信息

 

5.借鑑文章

在windows上搭建redis集羣(redis-cluster)https://blog.csdn.net/zsg88/article/details/73715947

 

Redis入門之集羣(手動搭建)https://blog.csdn.net/candy_rainbow/article/details/70216682

 

 

 

 

 

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