久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

redis集群搭建的方法

141次閱讀
沒有評論

共計 3779 個字符,預(yù)計需要花費 10 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

這篇文章主要介紹 redis 集群搭建的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

redis 集群搭建

在介紹正式內(nèi)容之前,首先我們來介紹一下 redis 單機版的搭建步驟是怎樣的。

下載 redis 壓縮包,然后解壓壓縮文件;

進入到解壓縮后的 redis 文件目錄(此時可以看到 Makefile 文件),編譯 redis 源文件;

把編譯好的 redis 源文件安裝到 /usr/local/redis 目錄下,如果 /local 目錄下沒有 redis 目錄,會自動新建 redis 目錄;

進入 /usr/local/redis/bin 目錄,直接./redis-server 啟動 redis(此時為前端啟動 redis);

將 redis 啟動方式改為后端啟動,具體做法:把解壓縮的 redis 文件下的 redis.conf 文件復(fù)制到 /usr/local/redis/bin 目錄下,然后修改該 redis.conf 文件 - daemonize:no 改為 daemonize:yse;

在 /bin 目錄下通過./redis-server redis.conf 啟動 redis(此時為后臺啟動)。
綜上 redis 單機版安裝啟動完成。
具體詳細帶圖步驟請參考 – redis 入門
請原諒我的啰嗦,ok,接著咱們回到本次話題 —-redis 集群搭建!

一、Redis Cluster(Redis 集群)簡介

redis 是一個開源的 key value 存儲系統(tǒng),受到了廣大互聯(lián)網(wǎng)公司的青睞。redis3.0 版本之前只支持單例模式,在 3.0 版本及以后才支持集群,我這里用的是 redis3.0.0 版本;

redis 集群采用 P2P 模式,是完全去中心化的,不存在中心節(jié)點或者代理節(jié)點;

redis 集群是沒有統(tǒng)一的入口的,客戶端(client)連接集群的時候連接集群中的任意節(jié)點(node)即可,集群內(nèi)部的節(jié)點是相互通信的(PING-PONG 機制),每個節(jié)點都是一個 redis 實例;

為了實現(xiàn)集群的高可用,即判斷節(jié)點是否健康(能否正常使用),redis-cluster 有這么一個投票容錯機制:如果集群中超過半數(shù)的節(jié)點投票認為某個節(jié)點掛了,那么這個節(jié)點就掛了(fail)。這是判斷節(jié)點是否掛了的方法;

那么如何判斷集群是否掛了呢? – 如果集群中任意一個節(jié)點掛了,而且該節(jié)點沒有從節(jié)點(備份節(jié)點),那么這個集群就掛了。這是判斷集群是否掛了的方法;

那么為什么任意一個節(jié)點掛了(沒有從節(jié)點)這個集群就掛了呢?– 因為集群內(nèi)置了 16384 個 slot(哈希槽),并且把所有的物理節(jié)點映射到了這 16384[0-16383]個 slot 上,或者說把這些 slot 均等的分配給了各個節(jié)點。當(dāng)需要在 Redis 集群存放一個數(shù)據(jù)(key-value)時,redis 會先對這個 key 進行 crc16 算法,然后得到一個結(jié)果。再把這個結(jié)果對 16384 進行求余,這個余數(shù)會對應(yīng) [0-16383] 其中一個槽,進而決定 key-value 存儲到哪個節(jié)點中。所以一旦某個節(jié)點掛了,該節(jié)點對應(yīng)的 slot 就無法使用,那么就會導(dǎo)致集群無法正常工作。

綜上所述,每個 Redis 集群理論上最多可以有 16384 個節(jié)點。

二、集群搭建需要的環(huán)境
2.1 Redis 集群至少需要 3 個節(jié)點,因為投票容錯機制要求超過半數(shù)節(jié)點認為某個節(jié)點掛了該節(jié)點才是掛了,所以 2 個節(jié)點無法構(gòu)成集群。
2.2 要保證集群的高可用,需要每個節(jié)點都有從節(jié)點,也就是備份節(jié)點,所以 Redis 集群至少需要 6 臺服務(wù)器。因為我沒有那么多服務(wù)器,也啟動不了那么多虛擬機,所在這里搭建的是偽分布式集群,即一臺服務(wù)器虛擬運行 6 個 redis 實例,修改端口號為(7001-7006),當(dāng)然實際生產(chǎn)環(huán)境的 Redis 集群搭建和這里是一樣的。
2.3 安裝 ruby
三、集群搭建具體步驟如下(注意要關(guān)閉防火墻)
3.1 在 usr/local 目錄下新建 redis-cluster 目錄,用于存放集群節(jié)點
redis 集群搭建的方法
3.2 把 redis 目錄下的 bin 目錄下的所有文件復(fù)制到 /usr/local/redis-cluster/redis01 目錄下,不用擔(dān)心這里沒有 redis01 目錄,會自動創(chuàng)建的。操作命令如下(注意當(dāng)前所在路徑):

cp -r redis/bin/ redis-cluster/redis01

redis 集群搭建的方法
3.3 刪除 redis01 目錄下的快照文件 dump.rdb,并且修改該目錄下的 redis.cnf 文件,具體修改兩處地方:一是端口號修改為 7001,二是開啟集群創(chuàng)建模式,打開注釋即可。分別如下圖所示:
刪除 dump.rdb 文件
redis 集群搭建的方法
修改端口號為 7001, 默認是 6379
redis 集群搭建的方法
將 cluster-enabled yes 的注釋打開
redis 集群搭建的方法
3.4 將 redis-cluster/redis01 文件復(fù)制 5 份到 redis-cluster 目錄下(redis02-redis06),創(chuàng)建 6 個 redis 實例,模擬 Redis 集群的 6 個節(jié)點。然后將其余 5 個文件下的 redis.conf 里面的端口號分別修改為 7002-7006。分別如下圖所示:
創(chuàng)建 redis02-06 目錄
redis 集群搭建的方法

分別修改 redis.conf 文件端口號為 7002-7006
redis 集群搭建的方法
3.5 接著啟動所有 redis 節(jié)點,由于一個一個啟動太麻煩了,所以在這里創(chuàng)建一個批量啟動 redis 節(jié)點的腳本文件,命令為 start-all.sh,文件內(nèi)容如下:

cd redis01
./redis-server redis.conf
cd ..
cd redis02
./redis-server redis.conf
cd ..
cd redis03
./redis-server redis.conf
cd ..
cd redis04
./redis-server redis.conf
cd ..
cd redis05
./redis-server redis.conf
cd ..
cd redis06
./redis-server redis.conf
cd ..

3.6 創(chuàng)建好啟動腳本文件之后,需要修改該腳本的權(quán)限,使之能夠執(zhí)行,指令如下:

chmod +x start-all.sh

redis 集群搭建的方法

3.7 執(zhí)行 start-all.sh 腳本,啟動 6 個 redis 節(jié)點
redis 集群搭建的方法
3.8 ok,至此 6 個 redis 節(jié)點啟動成功,接下來正式開啟搭建集群,以上都是準備條件。大家不要覺得圖片多看起來冗長所以覺得麻煩,其實以上步驟也就一句話的事情:創(chuàng)建 6 個 redis 實例(6 個節(jié)點)并啟動。
要搭建集群的話,需要使用一個工具(腳本文件),這個工具在 redis 解壓文件的源代碼里。因為這個工具是一個 ruby 腳本文件,所以這個工具的運行需要 ruby 的運行環(huán)境,就相當(dāng)于 java 語言的運行需要在 jvm 上。所以需要安裝 ruby,指令如下:

yum install ruby

然后需要把 ruby 相關(guān)的包安裝到服務(wù)器,我這里用的是 redis-3.0.0.gem,大家需要注意的是:redis 的版本和 ruby 包的版本最好保持一致。

將 Ruby 包安裝到服務(wù)器:需要先下載再安裝,如圖
redis 集群搭建的方法
安裝命令如下:

gem install redis-3.0.0.gem

redis 集群搭建的方法

3.9 上一步中已經(jīng)把 ruby 工具所需要的運行環(huán)境和 ruby 包安裝好了,接下來需要把這個 ruby 腳本工具復(fù)制到 usr/local/redis-cluster 目錄下。那么這個 ruby 腳本工具在哪里呢?之前提到過,在 redis 解壓文件的源代碼里,即 redis/src 目錄下的 redis-trib.rb 文件。
redis 集群搭建的方法
redis 集群搭建的方法
3.10 將該 ruby 工具(redis-trib.rb)復(fù)制到 redis-cluster 目錄下,指令如下:

cp redis-trib.rb /usr/local/redis-cluster

然后使用該腳本文件搭建集群,指令如下:

./redis-trib.rb create --replicas 1 47.106.219.251:7001 47.106.219.251:7002 47.106.219.251:7003 47.106.219.251:7004 47.106.219.251:7005 47.106.219.251:7006

注意:此處大家應(yīng)該根據(jù)自己的服務(wù)器 ip 輸入對應(yīng)的 ip 地址!

redis 集群搭建的方法

中途有個地方需要手動輸入 yes 即可
redis 集群搭建的方法
至此,Redi 集群搭建成功!大家注意最后一段文字,顯示了每個節(jié)點所分配的 slots(哈希槽),這里總共 6 個節(jié)點,其中 3 個是從節(jié)點,所以 3 個主節(jié)點分別映射了 0 -5460、5461-10922、10933-16383solts。

3.11 最后連接集群節(jié)點,連接任意一個即可:

redis01/redis-cli -p 7001 -c

注意:一定要加上 -c,不然節(jié)點之間是無法自動跳轉(zhuǎn)的!如下圖可以看到,存儲的數(shù)據(jù)(key-value)是均勻分配到不同的節(jié)點的:

redis 集群搭建的方法

四、結(jié)語
呼~~~ 長舒一口氣…終于搭建好了 Redis 集群。
整個過程其實挺簡單,本篇主要正對入門級別的小伙伴,插入了很多圖片,所以顯得冗長,希望大家多多理解,如果不當(dāng)之處,還望及時指正~

最后,加上兩條 redis 集群基本命令:
1. 查看當(dāng)前集群信息

cluster info

2. 查看集群里有多少個節(jié)點

cluster nodes

以上是“redis 集群搭建的方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!

向 AI 問一下細節(jié)

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2024-02-03發(fā)表,共計3779字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 四会市| 武陟县| 鹿泉市| 苗栗县| 南乐县| 镇巴县| 深圳市| 临泉县| 秀山| 来安县| 临沧市| 秭归县| 阿巴嘎旗| 乐山市| 开远市| 甘孜县| 土默特右旗| 鹰潭市| 衢州市| 旌德县| 驻马店市| 益阳市| 涟水县| 河北省| 临泽县| 环江| 祁连县| 双峰县| 乌拉特后旗| 怀远县| 闽清县| 息烽县| 分宜县| 吉隆县| 上饶市| 彭州市| 普兰店市| 遂平县| 舞阳县| 玉树县| 民乐县|