最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Redis集群部署的過程詳解

 更新時間:2024年06月03日 09:01:43   作者:陳橘又青  
Redis集群是Redis官方推出的分布式解決方案,它允許將數(shù)據(jù)分布在多個Redis節(jié)點中,從而提高Redis的性能和可擴展性,本文給大家介紹了Redis集群部署的過程步驟,需要的朋友可以參考下

Redis集群部署

1 Redis各節(jié)點部署

使用源碼安裝各節(jié)點,不過與非cluster方式不同的是,配置文件中需啟動cluster相關(guān)的配置。

因本次為偽分布式部署,生產(chǎn)環(huán)境部署時建議至少3臺機器部署(其中每臺機器1主1從)

ipport
192.168.56.1017000
192.168.56.1017001
192.168.56.1017002
192.168.56.1017003
192.168.56.1017004
192.168.56.1017005

1.1 啟動cluster各節(jié)點

創(chuàng)建數(shù)據(jù)目錄

mkdir -p  /data/redis/cluster/{7000,7001,7002,7003,7004,7005}

配置文件中主要修改如下內(nèi)容,其他的可按需調(diào)整,也可保持默認(rèn)值,各節(jié)點中注意修改對應(yīng)的端口號

bind 192.168.56.101
port 7000
daemonize yes
pidfile /data/redis/cluster/7000/redis_7000.pid
logfile "/data/redis/cluster/7000/redis_7000.log"
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
cluster-enabled yes
cluster-config-file nodes-7000.conf     #注意此文件自動生成,且初始化時不要有和此重名的文件
cluster-node-timeout 5000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes
cluster-slave-no-failover no

啟動各節(jié)點,建議用redis用戶啟動

useradd redis
chown -R  redis:redis  /data/redis/
su - redis
cd /data/redis/cluster/7001
cp /data/redis/cluster/7000/redis.conf . 
sed -i "s#7000#7001#g" redis.conf
redis-server redis.conf

其他節(jié)點和7001類似啟動,啟動后進程中會標(biāo)記redis節(jié)點以cluster模式啟動

2. 按照依賴

因redis5之前版本前cluster安裝依賴ruby,且版本要求比較苛刻,本次安裝的版本redis4.0.14,依賴的ruby版本為>=ruby2.4,因此大家安裝時可以安裝高版本的ruby,本次使用的是ruby2.7.5版本

2.1 編譯安裝ruby

下載ruby,建議從官網(wǎng)下載源碼進行編譯安裝https://www.ruby-lang.org/en/downloads/

tar -zxvf  ruby-2.7.5.tar.gz
cd ruby-2.7.5 
./configure
make  
make install

安裝完畢后,檢查ruby以及gem版本

2.2 安裝openssl-devel及zlib-devel

安裝完ruby后,使用gem安裝redis包,此時如果沒有安裝openssl 則回報如下錯誤

gem install  redis
ERROR:  Loading command: install (LoadError)
    cannot load such file -- openssl
ERROR:  While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass

按照過程如下:

yum方式先安裝openssl

 yum install openssl-devel -y

再進入ruby源碼目錄中的ext目錄下,找到openssl目錄,進入后進行安裝

cd ruby-2.7.5/ext/openssl
ruby extconf.rb 
make
make install

zlib-devel包如報錯,也可同上方式處理。

在執(zhí)行make,若出現(xiàn)如下報錯:

 make: *** 沒有規(guī)則可以創(chuàng)建“ossl_asn1.o”需要的目標(biāo)“/include/ruby.h” 停止。

可以在Makefile頂部中的增加 top_srcdir = …/…

再次執(zhí)行 make && make install

2.3 gem安裝redis

 gem install redis

3. 初始化redis集群

相關(guān)依賴安裝完成后,即可初始化redis集群,命令及過程如下:

[redis@localhost redis-4.0.14]$ src/redis-trib.rb create --replicas 1 192.168.56.101:7000 192.168.56.101:7001 192.168.56.101:7002 192.168.56.101:7003 192.168.56.101:7004 192.168.56.101:7005
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.56.101:7000
192.168.56.101:7001
192.168.56.101:7002
Adding replica 192.168.56.101:7004 to 192.168.56.101:7000
Adding replica 192.168.56.101:7005 to 192.168.56.101:7001
Adding replica 192.168.56.101:7003 to 192.168.56.101:7002
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: cd6663924f0c31e6b60b815dca9cb7ea863f5573 192.168.56.101:7000
   slots:0-5460 (5461 slots) master
M: abc1f43c9a4e8813e9da15433ac66cd185dc39fe 192.168.56.101:7001
   slots:5461-10922 (5462 slots) master
M: 43fa53cec1ae164f784e5d439aaf80ee2f7e35af 192.168.56.101:7002
   slots:10923-16383 (5461 slots) master
S: 6ffcd16f1d445b0091c6239bc0988fb8a77fac96 192.168.56.101:7003
   replicates cd6663924f0c31e6b60b815dca9cb7ea863f5573
S: c523846d491f8df0bc97033b025b0d24375a13f8 192.168.56.101:7004
   replicates abc1f43c9a4e8813e9da15433ac66cd185dc39fe
S: 905dc9de7e074c282aab44b4ed5680a2020bcf4c 192.168.56.101:7005
   replicates 43fa53cec1ae164f784e5d439aaf80ee2f7e35af
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join....
>>> Performing Cluster Check (using node 192.168.56.101:7000)
M: cd6663924f0c31e6b60b815dca9cb7ea863f5573 192.168.56.101:7000
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
M: 43fa53cec1ae164f784e5d439aaf80ee2f7e35af 192.168.56.101:7002
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
S: c523846d491f8df0bc97033b025b0d24375a13f8 192.168.56.101:7004
   slots: (0 slots) slave
   replicates abc1f43c9a4e8813e9da15433ac66cd185dc39fe
S: 6ffcd16f1d445b0091c6239bc0988fb8a77fac96 192.168.56.101:7003
   slots: (0 slots) slave
   replicates cd6663924f0c31e6b60b815dca9cb7ea863f5573
M: abc1f43c9a4e8813e9da15433ac66cd185dc39fe 192.168.56.101:7001
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
S: 905dc9de7e074c282aab44b4ed5680a2020bcf4c 192.168.56.101:7005
   slots: (0 slots) slave
   replicates 43fa53cec1ae164f784e5d439aaf80ee2f7e35af
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

至此,redis集群初始化完畢,各節(jié)點slot范圍及角色也打印出來了

Redis4 Cluster部署

1、安裝redis集群節(jié)點

因本次為偽分布式部署,生產(chǎn)環(huán)境部署時建議至少3臺機器部署(其中每臺機器1主1從),依舊和redis4.0.14的方式一樣部署

**ip ****port **
192.168.56.1017000
192.168.56.1017001
192.168.56.1017002
192.168.56.1017003
192.168.56.1017004
192.168.56.1017005

1.1 啟動cluster各節(jié)點

創(chuàng)建數(shù)據(jù)目錄

mkdir -p  /data/redis/cluster/{7000,7001,7002,7003,7004,7005}

配置文件中主要修改如下內(nèi)容,其他的可按需調(diào)整,也可保持默認(rèn)值,各節(jié)點中注意修改對應(yīng)的端口號

bind 192.168.56.103
port 7000
daemonize yes
pidfile /data/redis/cluster/7000/redis_7000.pid
logfile "/data/redis/cluster/7000/redis_7000.log"
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
cluster-enabled yes
cluster-config-file nodes-7000.conf     #注意此文件自動生成,且初始化時不要有和此重名的文件
cluster-node-timeout 5000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes
cluster-slave-no-failover no

啟動各節(jié)點,建議用redis用戶啟動

useradd redis
chown -R  redis:redis  /data/redis/
su - redis
cd /data/redis/cluster/7001
cp /data/redis/cluster/7000/redis.conf . 
sed -i "s#7000#7001#g" redis.conf
redis-server redis.conf

其他節(jié)點和7001類似啟動,啟動后進程中會標(biāo)記redis節(jié)點以cluster模式啟動

2. 初始化集群

redis5.x之后的版本初始化集群相當(dāng)便捷,命令及過程如下

redis-cli --cluster create --cluster-replicas 1 192.168.56.103:7000 192.168.56.103:7001 192.168.56.103:7002 192.168.56.103:7003 192.168.56.103:7004 192.168.56.103:7005
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 192.168.56.103:7004 to 192.168.56.103:7000
Adding replica 192.168.56.103:7005 to 192.168.56.103:7001
Adding replica 192.168.56.103:7003 to 192.168.56.103:7002
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: 84ea774c08450db01bf5a518e3b9e55fd26d4d34 192.168.56.103:7000
   slots:[0-5460] (5461 slots) master
M: eb98e53273fd348deb5eabcc6bfffc20484749b1 192.168.56.103:7001
   slots:[5461-10922] (5462 slots) master
M: e059d418c11401189558d0f33bd5658297c10939 192.168.56.103:7002
   slots:[10923-16383] (5461 slots) master
S: 23eed1c27ad11c685e5a226e2f82d5c0b6384c79 192.168.56.103:7003
   replicates e059d418c11401189558d0f33bd5658297c10939
S: cfa2549ea7782bb4f0ed6d45e9e3704a7d38d540 192.168.56.103:7004
   replicates 84ea774c08450db01bf5a518e3b9e55fd26d4d34
S: c3e14c4139bfa88af03ea97679715f051a122806 192.168.56.103:7005
   replicates eb98e53273fd348deb5eabcc6bfffc20484749b1
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
.
>>> Performing Cluster Check (using node 192.168.56.103:7000)
M: 84ea774c08450db01bf5a518e3b9e55fd26d4d34 192.168.56.103:7000
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
S: 23eed1c27ad11c685e5a226e2f82d5c0b6384c79 192.168.56.103:7003
   slots: (0 slots) slave
   replicates e059d418c11401189558d0f33bd5658297c10939
M: eb98e53273fd348deb5eabcc6bfffc20484749b1 192.168.56.103:7001
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: c3e14c4139bfa88af03ea97679715f051a122806 192.168.56.103:7005
   slots: (0 slots) slave
   replicates eb98e53273fd348deb5eabcc6bfffc20484749b1
S: cfa2549ea7782bb4f0ed6d45e9e3704a7d38d540 192.168.56.103:7004
   slots: (0 slots) slave
   replicates 84ea774c08450db01bf5a518e3b9e55fd26d4d34
M: e059d418c11401189558d0f33bd5658297c10939 192.168.56.103:7002
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

看到如下結(jié)果,代表成功配置并分配slot完成

查看各節(jié)點信息也可以用如下命令

[redis@localhost 7005]$ redis-cli -h 192.168.56.103 -p 7000 cluster nodes
23eed1c27ad11c685e5a226e2f82d5c0b6384c79 192.168.56.103:7003@17003 slave e059d418c11401189558d0f33bd5658297c10939 0 1646118171000 4 connected
eb98e53273fd348deb5eabcc6bfffc20484749b1 192.168.56.103:7001@17001 master - 0 1646118171604 2 connected 5461-10922
c3e14c4139bfa88af03ea97679715f051a122806 192.168.56.103:7005@17005 slave eb98e53273fd348deb5eabcc6bfffc20484749b1 0 1646118171000 6 connected
cfa2549ea7782bb4f0ed6d45e9e3704a7d38d540 192.168.56.103:7004@17004 slave 84ea774c08450db01bf5a518e3b9e55fd26d4d34 0 1646118170000 5 connected
e059d418c11401189558d0f33bd5658297c10939 192.168.56.103:7002@17002 master - 0 1646118169590 3 connected 10923-16383
84ea774c08450db01bf5a518e3b9e55fd26d4d34 192.168.56.103:7000@17000 myself,master - 0 1646118171000 1 connected 0-5460

以上就是Redis集群部署的過程詳解的詳細(xì)內(nèi)容,更多關(guān)于Redis集群部署的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用Redis如何設(shè)置永久有效

    使用Redis如何設(shè)置永久有效

    這篇文章主要介紹了使用Redis如何設(shè)置永久有效,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Redis中Key過期時間的設(shè)置與應(yīng)用方式

    Redis中Key過期時間的設(shè)置與應(yīng)用方式

    文章主要介紹了Redis中設(shè)置和管理Key過期時間的多種命令,包括EXPIRE、PEXPIRE、EXPIREAT、PEXPIREAT、SET命令結(jié)合EX或PX參數(shù)、SETEX命令,以及獲取剩余過期時間的TTL和PTTL命令,最后通過緩存、會話管理和分布式鎖等應(yīng)用場景展示了這些命令的實際應(yīng)用
    2025-11-11
  • Redis常用命令集的使用

    Redis常用命令集的使用

    作為一名Redis開發(fā)者或管理員,熟練掌握Redis的常用命令是必不可少的,本文主要介紹了Redis常用命令集的使用,具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • redis執(zhí)行l(wèi)ua腳本的實現(xiàn)方法

    redis執(zhí)行l(wèi)ua腳本的實現(xiàn)方法

    redis在2.6推出了腳本功能,允許開發(fā)者使用Lua語言編寫腳本傳到redis中執(zhí)行。本文就介紹了redis執(zhí)行l(wèi)ua腳本的實現(xiàn)方法,感興趣的可以了解一下
    2021-11-11
  • 防止redis內(nèi)存溢出優(yōu)化方法

    防止redis內(nèi)存溢出優(yōu)化方法

    本文主要介紹了防止redis內(nèi)存溢出優(yōu)化方法,包括使用maxmemory-policy選項、設(shè)置數(shù)據(jù)過期時間和配置Redis集群等,具有一定的參考價值,感興趣的可以了解一下
    2025-03-03
  • Windows安裝Redis并添加本地自啟動服務(wù)的實例詳解

    Windows安裝Redis并添加本地自啟動服務(wù)的實例詳解

    這篇文章主要介紹了Windows安裝Redis并添加本地自啟動服務(wù)的實例詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Redis的數(shù)據(jù)存儲及String類型的實現(xiàn)

    Redis的數(shù)據(jù)存儲及String類型的實現(xiàn)

    這篇文章主要介紹了Redis的數(shù)據(jù)存儲及String類型的實現(xiàn),redis作為k-v數(shù)據(jù)存儲,因查找和操作的時間復(fù)雜度都是O(1)和豐富的數(shù)據(jù)類型及數(shù)據(jù)結(jié)構(gòu)的優(yōu)化,了解了這些數(shù)據(jù)類型和結(jié)構(gòu)更有利于我們平時對于redis的使用,需要的朋友可以參考下
    2022-10-10
  • Redis解決優(yōu)惠券秒殺應(yīng)用案例

    Redis解決優(yōu)惠券秒殺應(yīng)用案例

    這篇文章主要介紹了Redis解決優(yōu)惠券秒殺應(yīng)用案例,本文先講了搶購問題,指出其中會出現(xiàn)的多線程問題,提出解決方案采用悲觀鎖和樂觀鎖兩種方式進行實現(xiàn),然后發(fā)現(xiàn)在搶購過程中容易出現(xiàn)一人多單現(xiàn)象,需要的朋友可以參考下
    2022-11-11
  • Redis緩存預(yù)熱的概念及方法詳解

    Redis緩存預(yù)熱的概念及方法詳解

    文章解釋了什么是緩存預(yù)熱,為什么邏輯過期必須預(yù)熱,并提供了三種簡單的方法來實現(xiàn)緩存預(yù)熱,同時介紹了saveShop2Redis方法的作用和角色,感興趣的朋友跟隨小編一起看看吧
    2026-04-04
  • Redis的緩存使用技巧分享(商戶查詢緩存)

    Redis的緩存使用技巧分享(商戶查詢緩存)

    本文介紹了緩存的原理和常見問題及其解決方案,包括緩存更新策略、緩存穿透、緩存雪崩和緩存擊穿等,通過實際案例和代碼示例,展示了如何在后端開發(fā)中有效利用緩存提高性能和降低數(shù)據(jù)庫壓力
    2026-02-02

最新評論

化州市| 疏勒县| 伊川县| 榆中县| 平舆县| 托克逊县| 东平县| 独山县| 河间市| 福安市| 黔西县| 沙湾县| 游戏| 井陉县| 磐石市| 沁阳市| 慈利县| 贞丰县| 老河口市| 上思县| 阳东县| 景洪市| 萨嘎县| 龙陵县| 平昌县| 凌云县| 合川市| 崇仁县| 东阳市| 永仁县| 通化市| 四会市| 宁晋县| 朔州市| 临沧市| 公主岭市| 巴彦县| 合阳县| 汨罗市| 铁岭市| 中方县|