日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis集群的搭建(具体步骤)

發(fā)布時間:2023/12/19 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis集群的搭建(具体步骤) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Redis集群搭建

Redis的單機版安裝:https://blog.csdn.net/qq_43412289/article/details/99815373

Redis的window版安裝:https://blog.csdn.net/qq_43412289/article/details/99817555

一、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é)點


3.2 把redis目錄下的bin目錄下的所有文件復(fù)制到/usr/local/redis-cluster/redis01目錄下,不用擔(dān)心這里沒有redis01目錄,會自動創(chuàng)建的。操作命令如下(注意當(dāng)前所在路徑):

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

?依次復(fù)制5份同樣的操作,修改端口號,打開集群模式

cp -r? redis01/ redis02

cp -r? redis01/ redis03

cp -r? redis01/ redis04

cp -r? redis01/ redis05

cp -r? redis01/ redis06

3.3 刪除redis01目錄下的快照文件dump.rdb,并且修改該目錄下的redis.cnf文件,

具體修改兩處地方:一是端口號修改為7001,二是開啟集群創(chuàng)建模式,打開注釋即可。分別如下圖所示:
刪除dump.rdb文件 必須得刪除不然搭建集群的時候會報錯

?

修改配置文件 redis.conf文件里的端口號分別為7001,7002,7003,7004,7005,7006 默認是6379

將cluster-enabled yes 的注釋打開

3.5 接著啟動所有redis節(jié)點,由于一個一個啟動太麻煩了,所以在這里創(chuàng)建一個批量啟動redis節(jié)點的腳本文件,命令為start-all.sh,文件內(nèi)容如下:

#!/bin/bash for I in {01,02,03,04,05,06} do echo "start redis$I redis" cd /usr/local/redis-cluster/redis$I ./redis-server redis.conf echo "redis$I redis started" done

設(shè)置關(guān)閉命令?vim stop-all.sh?

#!/bin/bash for I in {01,02,03,04,05,06} do echo "stop redis$I redis" cd /usr/local/redis-cluster/redis$I ./redis-cli -p 70$I shutdown echo "redis$I redis stoped" done

創(chuàng)建腳本完畢之后,需要修改腳本的權(quán)限,(權(quán)限修改完之后會變成綠色)使它能夠執(zhí)行命令:

chmod +x start-all.sh

chmod +x stop-all.sh

3.7 執(zhí)行start-all.sh腳本,啟動6個redis節(jié)點,可以通過命令查看進程是否開啟存在

ps -ef|grep redis

或者

ps -aux|grep redis

?3.8 要搭建集群的話,需要使用一個工具(腳本文件),這個工具在redis解壓文件的源代碼里。

linux連網(wǎng)設(shè)置:https://blog.csdn.net/qq_43412289/article/details/99815036

因為這個工具是一個ruby腳本文件,所以這個工具的運行需要ruby的運行環(huán)境,就相當(dāng)于java語言的運行需要在jvm上。所以需要安裝ruby,指令如下:

yum install ruby

yum install rubygems

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

下載地址:鏈接: https://pan.baidu.com/s/17mhKew7Z-hF7PozKjUMSpg 提取碼: afh7

安裝命令如下:

gem install redis-3.0.0.gem

?

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

3.10 將該ruby工具(redis-trib.rb)復(fù)制到redis-cluster目錄下,指令如下:

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

然后使用該腳本文件搭建集群,運行 redis-trib.rb 腳本指令如下:

./redis-trib.rb create --replicas 1 192.168.81.142:7001 192.168.81.142:7002

192.168.81.142:7003 192.168.81.142:7004 192.168.81.142:7005 192.168.81.142:7006

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

中途有個地方需要手動輸入yes即可

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

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

隨便找一臺機器連接即可,但是要加-c 參數(shù) 代表連接的是集群

redis01/redis-cli -p 7001 -c

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

如果沒有再添加數(shù)據(jù)報錯出現(xiàn)?(error) CLUSTERDOWN The cluster is down

解決方法:https://blog.csdn.net/qq_43412289/article/details/99761556

原因:沒有刪除dump.rdb文件

redis集群基本命令:


1.查看當(dāng)前集群信息

cluster info

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

cluster nodes

總結(jié)

以上是生活随笔為你收集整理的Redis集群的搭建(具体步骤)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。