1. 程式人生 > 其它 >redis 叢集環境搭建

redis 叢集環境搭建

原理:

1,每個Redis群集的節點都需要開啟兩個TCP連線,由於這兩個連線就需要兩個埠,分別是用於為客戶端提供服務的常規Redis TCP命令埠(例如6379)以及通過將10000和命令埠相加(10000+6379)而獲得的埠,就是叢集埠(例如16379)。

2,節點使用群集匯流排進行故障檢測,配置更新,故障轉移授權等。 客戶端不應嘗試與群集匯流排埠通訊,為了保證Redis命令埠的正常使用,請確保在防火牆中開啟這兩個埠,否則Redis群集節點將無法通訊。

要求:

1,redis叢集必須要求有6個例項,也就是說至少要啟動6個redis-server程序。

2,每個redis都需要開放兩個埠,如果不能關閉防火牆,就要放行兩個埠。總共至少是12個埠號。

3,redis版本限制.

  redis版本>=5.xxx,直接使用./redis-cli --cluster create 指令構建redis叢集。

  redis版本<5.xxx,需要安裝ruby、rubygems環境,使用 ./redis-trib.rb create 指令構建redis叢集,

步驟:

1,在同一臺主機上首先安裝好單機redis。解壓,make,修改配置檔案,啟動命令等。

2,暫時不啟動上面的server例項,將redis檔案複製五份,按埠號命名。替換redis.conf中的埠號。建立一個cluster-redis的資料夾,將這些redis都放進去。

3,在叢集資料夾下新建一個bin目錄,複製一份redis的/bin工具進去,方便以後一起使用。

4,使用叢集的詳細配置檔案 redis.conf如下:

port 9001(每個節點的埠號)
daemonize yes
bind 192.168.119.131(綁定當前機器 IP)
dir /usr/local/redis-cluster/9001/data/(資料檔案存放位置)
pidfile /var/run/redis_9001.pid(pid 9001和port要對應)
cluster-enabled yes(啟動叢集模式)
cluster-config-file nodes9001.conf(9001和port要對應)#這不是使用者可編輯的配置檔案,而是Redis群集節點每次發生更改時自動保留群集配置(基本上為狀態)的檔案,以便能夠在啟動時重新讀取它。 
cluster
-node-timeout 15000  #Redis群集節點可以不可用的最長時間,而不會將其視為失敗。 如果主節點超過指定的時間不可達,它將由其從屬裝置進行故障切換。 此引數控制Redis群集中的其他重要事項。 appendonly yes #開啟aof 持久化儲存

5,更改好其他redis例項的配置檔案。

6,我用的redis版本大於5.0,所以不需要安裝ruby環境