欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

redis集群搭建過程(非常詳細(xì),適合新手)

 更新時(shí)間:2021年11月12日 11:24:10   作者:涼涼的西瓜  
這篇文章主要介紹了redis集群搭建過程,Redis集群至少需要3個(gè)節(jié)點(diǎn),因?yàn)橥镀比蒎e(cuò)機(jī)制要求超過半數(shù)節(jié)點(diǎn)認(rèn)為某個(gè)節(jié)點(diǎn)掛了該節(jié)點(diǎn)才是掛了,所以2個(gè)節(jié)點(diǎn)無法構(gòu)成集群,具體搭建過程跟隨小編一起看看吧

redis集群搭建

在開始redis集群搭建之前,我們先簡(jiǎn)單回顧一下redis單機(jī)版的搭建過程

  • 下載redis壓縮包,然后解壓壓縮文件;
  • 進(jìn)入到解壓縮后的redis文件目錄(此時(shí)可以看到Makefile文件),編譯redis源文件;
  • 把編譯好的redis源文件安裝到/usr/local/redis目錄下,如果/local目錄下沒有redis目錄,會(huì)自動(dòng)新建redis目錄;
  • 進(jìn)入/usr/local/redis/bin目錄,直接./redis-server啟動(dòng)redis(此時(shí)為前端啟動(dòng)redis);
  • 將redis啟動(dòng)方式改為后端啟動(dòng),具體做法:把解壓縮的redis文件下的redis.conf文件復(fù)制到/usr/local/redis/bin目錄下,然后修改該redis.conf文件->daemonize:no 改為daemonize:yse;
  • 在/bin目錄下通過./redis-server redis.conf啟動(dòng)redis(此時(shí)為后臺(tái)啟動(dòng))。
  • 綜上redis單機(jī)版安裝啟動(dòng)完成。

具體詳細(xì)帶圖步驟請(qǐng)參考 -> redis入門
請(qǐng)?jiān)徫业膯?,ok,接著咱們回到本次話題----redis集群搭建!

一、Redis Cluster(Redis集群)簡(jiǎn)介

  • redis是一個(gè)開源的key value存儲(chǔ)系統(tǒng),受到了廣大互聯(lián)網(wǎng)公司的青睞。redis3.0版本之前只支持單例模式,在3.0版本及以后才支持集群,我這里用的是redis3.0.0版本;
  • redis集群采用P2P模式,是完全去中心化的,不存在中心節(jié)點(diǎn)或者代理節(jié)點(diǎn);
  • redis集群是沒有統(tǒng)一的入口的,客戶端(client)連接集群的時(shí)候連接集群中的任意節(jié)點(diǎn)(node)即可,集群內(nèi)部的節(jié)點(diǎn)是相互通信的(PING-PONG機(jī)制),每個(gè)節(jié)點(diǎn)都是一個(gè)redis實(shí)例;
  • 為了實(shí)現(xiàn)集群的高可用,即判斷節(jié)點(diǎn)是否健康(能否正常使用),redis-cluster有這么一個(gè)投票容錯(cuò)機(jī)制:如果集群中超過半數(shù)的節(jié)點(diǎn)投票認(rèn)為某個(gè)節(jié)點(diǎn)掛了,那么這個(gè)節(jié)點(diǎn)就掛了(fail)。這是判斷節(jié)點(diǎn)是否掛了的方法;
  • 那么如何判斷集群是否掛了呢? -> 如果集群中任意一個(gè)節(jié)點(diǎn)掛了,而且該節(jié)點(diǎn)沒有從節(jié)點(diǎn)(備份節(jié)點(diǎn)),那么這個(gè)集群就掛了。這是判斷集群是否掛了的方法;
  • 那么為什么任意一個(gè)節(jié)點(diǎn)掛了(沒有從節(jié)點(diǎn))這個(gè)集群就掛了呢? -> 因?yàn)榧簝?nèi)置了16384個(gè)slot(哈希槽),并且把所有的物理節(jié)點(diǎn)映射到了這16384[0-16383]個(gè)slot上,或者說把這些slot均等的分配給了各個(gè)節(jié)點(diǎn)。當(dāng)需要在Redis集群存放一個(gè)數(shù)據(jù)(key-value)時(shí),redis會(huì)先對(duì)這個(gè)key進(jìn)行crc16算法,然后得到一個(gè)結(jié)果。再把這個(gè)結(jié)果對(duì)16384進(jìn)行求余,這個(gè)余數(shù)會(huì)對(duì)應(yīng)[0-16383]其中一個(gè)槽,進(jìn)而決定key-value存儲(chǔ)到哪個(gè)節(jié)點(diǎn)中。所以一旦某個(gè)節(jié)點(diǎn)掛了,該節(jié)點(diǎn)對(duì)應(yīng)的slot就無法使用,那么就會(huì)導(dǎo)致集群無法正常工作。
  • 綜上所述,每個(gè)Redis集群理論上最多可以有16384個(gè)節(jié)點(diǎn)。

二、集群搭建需要的環(huán)境

2.1 Redis集群至少需要3個(gè)節(jié)點(diǎn),因?yàn)橥镀比蒎e(cuò)機(jī)制要求超過半數(shù)節(jié)點(diǎn)認(rèn)為某個(gè)節(jié)點(diǎn)掛了該節(jié)點(diǎn)才是掛了,所以2個(gè)節(jié)點(diǎn)無法構(gòu)成集群。
2.2 要保證集群的高可用,需要每個(gè)節(jié)點(diǎn)都有從節(jié)點(diǎn),也就是備份節(jié)點(diǎn),所以Redis集群至少需要6臺(tái)服務(wù)器。因?yàn)槲覜]有那么多服務(wù)器,也啟動(dòng)不了那么多虛擬機(jī),所在這里搭建的是偽分布式集群,即一臺(tái)服務(wù)器虛擬運(yùn)行6個(gè)redis實(shí)例,修改端口號(hào)為(7001-7006),當(dāng)然實(shí)際生產(chǎn)環(huán)境的Redis集群搭建和這里是一樣的。
2.3 安裝ruby

三、集群搭建具體步驟如下(注意要關(guān)閉防火墻)

3.1 在usr/local目錄下新建redis-cluster目錄,用于存放集群節(jié)點(diǎn)

新建Redis集群目錄

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

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

在這里插入圖片描述

3.3 刪除redis01目錄下的快照文件dump.rdb,并且修改該目錄下的redis.cnf文件,具體修改兩處地方:一是端口號(hào)修改為7001,二是開啟集群創(chuàng)建模式,打開注釋即可。分別如下圖所示:
刪除dump.rdb文件

刪除dump.rdb文件

修改端口號(hào)為7001,默認(rèn)是6379

在這里插入圖片描述

將cluster-enabled yes 的注釋打開

在這里插入圖片描述

3.4 將redis-cluster/redis01文件復(fù)制5份到redis-cluster目錄下(redis02-redis06),創(chuàng)建6個(gè)redis實(shí)例,模擬Redis集群的6個(gè)節(jié)點(diǎn)。然后將其余5個(gè)文件下的redis.conf里面的端口號(hào)分別修改為7002-7006。分別如下圖所示:
創(chuàng)建redis02-06目錄

在這里插入圖片描述

分別修改redis.conf文件端口號(hào)為7002-7006

在這里插入圖片描述

3.5 接著啟動(dòng)所有redis節(jié)點(diǎn),由于一個(gè)一個(gè)啟動(dòng)太麻煩了,所以在這里創(chuàng)建一個(gè)批量啟動(dòng)redis節(jié)點(diǎn)的腳本文件,命令為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)建好啟動(dòng)腳本文件之后,需要修改該腳本的權(quán)限,使之能夠執(zhí)行,指令如下:

chmod +x start-all.sh

在這里插入圖片描述

3.7 執(zhí)行start-all.sh腳本,啟動(dòng)6個(gè)redis節(jié)點(diǎn)

在這里插入圖片描述

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

yum install ruby

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

在這里插入圖片描述

安裝命令如下:

gem install redis-3.0.0.gem

在這里插入圖片描述

3.9 上一步中已經(jīng)把ruby工具所需要的運(yùn)行環(huán)境和ruby包安裝好了,接下來需要把這個(gè)ruby腳本工具復(fù)制到usr/local/redis-cluster目錄下。那么這個(gè)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 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:700

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

在這里插入圖片描述

中途有個(gè)地方需要手動(dòng)輸入yes即可

在這里插入圖片描述

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

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

redis01/redis-cli -p 7001 -c

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

在這里插入圖片描述

四、結(jié)語(yǔ)

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

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

cluster info

2.查看集群里有多少個(gè)節(jié)點(diǎn)

cluster nodes

到此這篇關(guān)于redis集群搭建過程(非常詳細(xì),適合新手)的文章就介紹到這了,更多相關(guān)redis集群搭建內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Redis bitmap 實(shí)現(xiàn)簽到案例(最新推薦)

    Redis bitmap 實(shí)現(xiàn)簽到案例(最新推薦)

    這篇文章主要介紹了Redis bitmap 實(shí)現(xiàn)簽到案例,通過設(shè)計(jì)簽到功能對(duì)應(yīng)的數(shù)據(jù)庫(kù)表,結(jié)合sql語(yǔ)句給大家講解的非常詳細(xì),具體示例代碼跟隨小編一起看看吧
    2024-07-07
  • 淺談Redis的幾個(gè)過期策略

    淺談Redis的幾個(gè)過期策略

    在使用redis時(shí),一般會(huì)設(shè)置一個(gè)過期時(shí)間,當(dāng)然也有不設(shè)置過期時(shí)間的,也就是永久不過期。當(dāng)設(shè)置了過期時(shí)間,redis是如何判斷是否過期,以及根據(jù)什么策略來進(jìn)行刪除的。
    2021-05-05
  • Redis配置外網(wǎng)可訪問(redis遠(yuǎn)程連接不上)的方法

    Redis配置外網(wǎng)可訪問(redis遠(yuǎn)程連接不上)的方法

    默認(rèn)情況下,當(dāng)我們?cè)诓渴鹆藃edis服務(wù)之后,redis本身默認(rèn)只允許本地訪問。Redis服務(wù)端只允許它所在服務(wù)器上的客戶端訪問,如果Redis服務(wù)端和Redis客戶端不在同一個(gè)機(jī)器上,就要進(jìn)行配置。
    2022-12-12
  • Caffeine實(shí)現(xiàn)類似redis的動(dòng)態(tài)過期時(shí)間設(shè)置示例

    Caffeine實(shí)現(xiàn)類似redis的動(dòng)態(tài)過期時(shí)間設(shè)置示例

    這篇文章主要為大家介紹了Caffeine實(shí)現(xiàn)類似redis的動(dòng)態(tài)過期時(shí)間示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • redis開啟和禁用登陸密碼校驗(yàn)的方法

    redis開啟和禁用登陸密碼校驗(yàn)的方法

    今天小編就為大家分享一篇redis開啟和禁用登陸密碼校驗(yàn)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Redis中哈希分布不均勻的解決辦法

    Redis中哈希分布不均勻的解決辦法

    這篇文章主要介紹了Redis中哈希分布不均勻的解決辦法的相關(guān)資料,需要的朋友可以參考下
    2021-02-02
  • IDEA初次連接Redis配置的實(shí)現(xiàn)

    IDEA初次連接Redis配置的實(shí)現(xiàn)

    本文主要介紹了IDEA初次連接Redis配置的實(shí)現(xiàn),文中通過圖文步驟介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-12-12
  • 淺談redis內(nèi)存數(shù)據(jù)的持久化方式

    淺談redis內(nèi)存數(shù)據(jù)的持久化方式

    這篇文章主要介紹了淺談redis內(nèi)存數(shù)據(jù)的持久化方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-03-03
  • 詳解Redis中的雙鏈表結(jié)構(gòu)

    詳解Redis中的雙鏈表結(jié)構(gòu)

    這篇文章主要介紹了Redis中的雙鏈表結(jié)構(gòu),包括listNode結(jié)構(gòu)的API,需要的朋友可以參考下
    2015-08-08
  • 詳解Redis主從復(fù)制實(shí)踐

    詳解Redis主從復(fù)制實(shí)踐

    本文將演示主從復(fù)制如何配置、實(shí)現(xiàn)以及實(shí)現(xiàn)原理,Redis主從復(fù)制三大策略,全量復(fù)制、部分復(fù)制和立即復(fù)制。
    2021-05-05

最新評(píng)論