Redis集群搭建 三主三從

2022-09-09 22:15:42 字數 3924 閱讀 9358

redis集群介紹

redis 是乙個開源的 key-value 儲存系統,由於出眾的效能,大部分網際網路企業都用來做伺服器端快取。redis在3.0版本之前只支援單例項模式 雖然支援主從模式,哨兵模式來解決單點故障,可是網際網路公司動輒幾百g的資料,顯然是沒辦法滿足業務需求的。所以redis在3.0版本之後推出了集群模式。

redis 集群採用了p2p的模式,完全去中心化。redis 把所有的 key 分成了 16384 個 slot,每個 redis 例項負責其中一部分 slot 。集群中的所有資訊(節點、埠、slot等),都通過節點之間定期的資料交換而更新。

redis 客戶端可以在任意乙個 redis 例項發出請求,如果所需資料不在該例項中,通過重定向命令引導客戶端訪問所需的例項。

首先這個帖子是對redis集群搭建的帖子 搭建集群的前提是已經在linux下安裝了redis   在搭建集群之前我要先說一下redis集群搭建規則,由於集群至少需要六個節點(三主三從)但是我本地沒有那麼多機器讓我 玩 所以我選擇在一台虛擬機器上進行集群的搭建 這個和在生產環境上搭建是沒有區別的   請注意,下面所有集群搭建環境都基於已安裝好的 redis 做的 

1.建立資料夾

首先我們的集群的埠號為6301-6306資料存放在埠號/data資料夾中

2.複製執行指令碼/usr/local/redis-cluster目錄下建立bin資料夾,用來存放集群執行指令碼,並把安裝好的redis 的src路徑下的執行指令碼拷貝過來

mkdir redis-cluster/bin

cd /usr/local/redis-4.0.6/src/

cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server redis-trib.rb /usr/local/redis-cluster/bin

3.複製乙個新的redis例項從已經安裝好的redis中複製乙個新的例項到6301中並且修改他的redis.config配置 

cp /usr/local/redis-4.0.6/* /usr/local/redis-cluster/6301

port 6301(每個節點的埠號)

daemonize yes

#bind 127.0.0.1(注釋掉)

dir /usr/local/redis-cluster/6301/data/(資料檔案存放位置)

pidfile /var/run/redis_6301.pid(pid 6301和port要對應)

cluster-enabled yes(啟動集群模式)

cluster-config-file nodes6301.conf(6301和port要對應)

cluster-node-timeout 15000

4.複製其他節點因為我們之前已經複製出了乙個節點 6301 之後的操作就比較呆 在複製其餘的五個節點就好了 我們這裡選擇將6301例項複製給其餘的五個,其中要修改的就是redis.config檔案 所有與埠相關的資訊

5.修改6302-6306的redis.config檔案

其中到這一步已經很簡單了 因為之前已經做好了乙個例項的修改(6301) 你通過搜尋會發現其實只有四個點需要修改,我們全域性替換下吧,進入相應的節點資料夾,做替換就好了。命令非常簡單

vim redis.conf

:%s/6301/6302/g

到這裡我們的基本環境已經搭建好了 剩下的就是啟動了!!!

如果我們現在直接啟動redis六個節點往裡面新增東西會報錯(error) clusterdown hash slot not served(不提供集群的雜湊槽)。

因為雖然我們配置並啟動了 redis 集群服務,但是他們暫時還並不在乙個集群中,互相直接發現不了,而且還沒有可儲存的位置,就是所謂的slot(槽)。

所以接下來我們要安裝集群所需要的軟體 ruby

yum install centos-release-scl-rh//會在/etc/yum.repos.d/目錄下多出乙個centos-sclo-scl-rh.repo源

yum install rh-ruby26 -y //直接yum安裝即可  

scl enable rh-ruby26 bash//必要一步

ruby -v//檢視安裝版本

如果直接使用

這三行命令進行安裝ruby的時候會預設安裝2.0.0版本的ruby這個時候會發生 版本不相容的問題 所以使用我這種yum安裝方式不會有這種問題的出現

集群搭建的命令

在輸入命令前需要保證六個redis節點已經啟動

/usr/local/redis-cluster/bin/redis-trib.rb create --replicas 1 192.168.211.128:6301 192.168.211.128:6302 192.168.211.128:6303 192.168.211.128:6304 192.168.211.128:6305 192.168.211.128:6306
然後呼叫ruby命令來建立集群 replicas 1 表示主從比例為1:1 乙個主節點對應乙個從節點然後預設給我們分配好了每個主節點和對應從節點服務,以及 solt 的大小,因為在 redis 集群中有且僅有 16383 個 solt ,預設情況會給我們平均分配,當然你可以指定,後續的增減節點也可以重新分配。

這個就表示集群已經建立成功

cluster info

cluster nodes

輸入這兩個命令可以檢視集群的狀態和節點資訊

小結一下

搭建redis集群還是很簡單的只是需要修改的檔案比較麻煩沒有什麼技術含量 跟著這個帖子一步一步走下去就可以自己搭建乙個redis集群出來 !!!

redis集群三主三從redis cli

port 7000 dir usr local redisdata daemonize yes logfile 7000.log dbfilename dump 7000.rdb cluster enabled yes cluster node timeout 15000 cluster confi...

redis搭建公網集群(6個幾點三主三從)

1,首先安裝redis單機版,網上教程很多就不介紹了。2,redis集群是用的ruby指令碼,所以要想執行該指令碼,需要ruby環境.對應redis的原始碼src目錄下的redis trib.rb,redis trib.rb是redis官方推出的管理redis集群的工具.3,安裝ruby環境 cen...

Linux搭建redis集群 3主3從,

前言 本文主要記錄集群搭建的主要步驟,僅供有經驗者參考,以此記錄!1.安裝ruby 2.分別在三颱機器上建立資料夾 第1臺 usr local redis cluster 7001,7002 第2臺 usr local redis cluster 7003,7004 第3臺 usr local re...