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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

实战04_redis-cluster集群搭建

發布時間:2024/9/27 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实战04_redis-cluster集群搭建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

接上一篇:實戰_03_Redis基礎命令https://blog.csdn.net/weixin_40816738/article/details/99213524

#安裝gcc yum install gcc-c++ #使用yum命令安裝 ruby (我們需要使用ruby腳本來實現集群搭建) yum install ruby yum install rubygems #將redis源碼包上傳到 linux 系統 ,解壓redis源碼包 #編譯redis源碼 ,進入redis源碼文件夾 make 看到以下輸出結果,表示編譯成功

創建目錄/app/redis-cluster目錄, 安裝6個redis實例,分別安裝在以下目錄 mkdir /app/redis-cluster /app/redis-cluster/redis-1 /app/redis-cluster/redis-2 /app/redis-cluster/redis-3 /app/redis-cluster/redis-4 /app/redis-cluster/redis-5 /app/redis-cluster/redis-6 以第一個redis實例為例,命令如下 make install PREFIX=/app/redis-cluster/redis-cluster/redis-1 make install PREFIX=/app/redis-cluster/redis-cluster/redis-2 make install PREFIX=/app/redis-cluster/redis-cluster/redis-3 make install PREFIX=/app/redis-cluster/redis-cluster/redis-4 make install PREFIX=/app/redis-cluster/redis-cluster/redis-5 make install PREFIX=/app/redis-cluster/redis-cluster/redis-6






復制配置文件 將 /redis-3.0.0/redis.conf 復制到redis下的bin目錄下 [root@localhost redis-3.0.0]# cp redis.conf /app/redis-cluster/redis-1/bin [root@localhost redis-3.0.0]# cp redis.conf /app/redis-cluster/redis-2/bin [root@localhost redis-3.0.0]# cp redis.conf /app/redis-cluster/redis-3/bin [root@localhost redis-3.0.0]# cp redis.conf /app/redis-cluster/redis-4/bin [root@localhost redis-3.0.0]# cp redis.conf /app/redis-cluster/redis-5/bin [root@localhost redis-3.0.0]# cp redis.conf /app/redis-cluster/redis-6/bin

二、配置集群

修改每個redis節點的配置文件redis.conf

1、修改運行端口為7001 (7002 7003 …)
2、打開集群開關

[root@localhost src]# vim /app/redis-cluster/redis-1/bin/redis.conf [root@localhost src]# vim /app/redis-cluster/redis-2/bin/redis.conf [root@localhost src]# vim /app/redis-cluster/redis-3/bin/redis.conf [root@localhost src]# vim /app/redis-cluster/redis-4/bin/redis.conf [root@localhost src]# vim /app/redis-cluster/redis-5/bin/redis.conf [root@localhost src]# vim /app/redis-cluster/redis-6/bin/redis.conf

將redis-1至redis-6的端口:port以次修改為7001-7006 前的注釋去掉(45行)

將cluster-enabled yes 前的注釋去掉(632行)

截圖是redis-1的修改,其他5個和上面一樣。
啟動每個redis實例
以第一個實例為例,命令如下

[root@localhost bin]# cd /app/redis-cluster/redis-1/bin/ [root@localhost bin]# ./redis-server redis.conf

[root@localhost bin]# cd /app/redis-cluster/redis-2/bin/ [root@localhost bin]# ./redis-server redis.conf

[root@localhost bin]# cd /app/redis-cluster/redis-3/bin/ [root@localhost bin]# ./redis-server redis.conf

[root@localhost bin]# cd /app/redis-cluster/redis-4/bin/ [root@localhost bin]# ./redis-server redis.conf

[root@localhost bin]# cd /app/redis-cluster/redis-5/bin/ [root@localhost bin]# ./redis-server redis.conf

[root@localhost bin]# cd /app/redis-cluster/redis-6/bin/ [root@localhost bin]# ./redis-server redis.conf

redis6個實例啟動完成之后,查看一下是不是都啟動起來了

ps -ef | grep redis


上傳redis-3.0.0.gem ,安裝 ruby用于搭建redis集群的腳本

#執行腳本安裝腳本 gem install redis-3.0.0.gem


(4)使用 ruby 腳本搭建集群。

#進入redis源碼目錄中的src目錄 執行下面的命令 ./redis-trib.rb create --replicas 1 192.168.43.10:7001 192.168.43.10:7002 192.168.43.10:7003 192.168.43.10:7004 192.168.43.10:7005 192.168.43.10:7006

附上軌跡記錄:

[root@localhost src]# ./redis-trib.rb create --replicas 1 192.168.43.10:7001 192.168.43.10:7002 192.168.43.10:7003 192.168.43.10:7004 192.168.43.10:7005 192.168.43.10:7006 >>> Creating cluster Connecting to node 192.168.43.10:7001: OK Connecting to node 192.168.43.10:7002: OK Connecting to node 192.168.43.10:7003: OK Connecting to node 192.168.43.10:7004: OK Connecting to node 192.168.43.10:7005: OK Connecting to node 192.168.43.10:7006: OK >>> Performing hash slots allocation on 6 nodes... Using 3 masters: 192.168.43.10:7001 192.168.43.10:7002 192.168.43.10:7003 Adding replica 192.168.43.10:7004 to 192.168.43.10:7001 Adding replica 192.168.43.10:7005 to 192.168.43.10:7002 Adding replica 192.168.43.10:7006 to 192.168.43.10:7003 M: 158ae782725cc54e8cfff785f46a247cb00ea7e6 192.168.43.10:7001slots:0-5460 (5461 slots) master M: 885f422e2ab7cf25e317f005069f89283ee61e95 192.168.43.10:7002slots:5461-10922 (5462 slots) master M: 4cd039c3a9e92063f5e022ed3e00cf976154e580 192.168.43.10:7003slots:10923-16383 (5461 slots) master S: 707db54b36af29cd60e1bc8710b1d6c1123785e4 192.168.43.10:7004replicates 158ae782725cc54e8cfff785f46a247cb00ea7e6 S: b6d094831ecdccd78fb9b7d33c3893bc4ced650f 192.168.43.10:7005replicates 885f422e2ab7cf25e317f005069f89283ee61e95 S: 9cc2de16400334f0a4037ac15e672704cdbba890 192.168.43.10:7006replicates 4cd039c3a9e92063f5e022ed3e00cf976154e580 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 clusteriting for the cluster to join.. >>> Performing Cluster Check (using node 192.168.43.10:7001) M: 158ae782725cc54e8cfff785f46a247cb00ea7e6 192.168.43.10:7001slots:0-5460 (5461 slots) master M: 885f422e2ab7cf25e317f005069f89283ee61e95 192.168.43.10:7002slots:5461-10922 (5462 slots) master M: 4cd039c3a9e92063f5e022ed3e00cf976154e580 192.168.43.10:7003slots:10923-16383 (5461 slots) master M: 707db54b36af29cd60e1bc8710b1d6c1123785e4 192.168.43.10:7004slots: (0 slots) masterreplicates 158ae782725cc54e8cfff785f46a247cb00ea7e6 M: b6d094831ecdccd78fb9b7d33c3893bc4ced650f 192.168.43.10:7005slots: (0 slots) masterreplicates 885f422e2ab7cf25e317f005069f89283ee61e95 M: 9cc2de16400334f0a4037ac15e672704cdbba890 192.168.43.10:7006slots: (0 slots) masterreplicates 4cd039c3a9e92063f5e022ed3e00cf976154e580 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered.

集群搭建完成之后,
監控redis-1控制臺

監控redis-2控制臺

監控redis-3控制臺

監控redis-4控制臺

監控redis-5控制臺

監控redis-6控制臺

開放允許外界訪問的端口號

vim /etc/sysconfig/iptables 添加內容如下 #redis-cluster -A INPUT -m state --state NEW -m tcp -p tcp --dport 7001 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 7002 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 7003 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 7004 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 7005 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 7006 -j ACCEPT


保存,

#重啟防火墻,是配置生效 service iptables restart #查看防火墻運行狀態 service iptables status



在windows環境下,使用redis客戶端進行遠程連接redis集群

#進入reids目錄,執行以下命令 redis-cli -h 192.168.43.10 -p 7001 -c 命令說明
-h指定連接reids的ip地址
-p指定遠程連接redis的端口號
-c指定客戶端連接的是redis集群,如果不添加-c參數,相當于連接的redis單機


測試驗證一下

#往reidis集群中添加一個name為gblfy的值 set name gblfy


從圖中可以看出,成功的將name為gblfy的值添加到了卡槽為【5798】,卡槽范圍屬于【5461-10922】的7002節點上了。

演示連接集群和單機的區別

實現思路 1.連接集群redis-1 7001端口,添加name值為gblfy 2.連接單機,嘗試獲取上一步添加到集群中的name為gblfy的值 預測: 1.假設 :將name值為gblfy儲存在7002節點上 2.單機連接7001節點,應該獲取不到添加到集群中name值為gblfy 3.退出,單機遠程連接7002,可以正常從redis集群中獲取到name值為gblfy
  • 測試場景1:
  • 驗證單機遠程連接集群,單機登錄非該節點的redis服務端,從其他節點中獲取值
    第一步:redis客戶端遠程連接redis集群
redis-cli -h 192.168.43.10 -p 7001 -c


第二步:向redis集群中添加name值為gblfy

192.168.43.10:7001> set name gblfy


第三步:退出集群,單機連接7001,嘗試獲取name值為gblfy

#退出集群 192.168.43.10:7001> quit #單機連接redis redis-cli -h 192.168.43.10 -p 7001 #從7001節點,嘗試獲取name值為gblfy 192.168.43.10:7001> get name

異常信息如下:

(error) MOVED 5798 192.168.43.10:7002

  • 測試場景2:
  • 驗證單機遠程連接集群,單機登錄該節點的redis服務端,從該節點中獲取值

結果總結:測試和我們預測的結果是一樣的,在windows環境下,通過redis客戶端遠程連接redis-cluster集群,然后,向redis-cluster集群中添加值,最后,通過遠程連接redis單機,獲取添加到集群的值,只有儲存到該節點下的值可以正常獲取到,非該節點下的場景,獲取不到添加到集群的值。

演示截圖總覽:

下一篇:實戰_05_SpringBoot整合redis單機版本https://blog.csdn.net/weixin_40816738/article/details/100658608

總結

以上是生活随笔為你收集整理的实战04_redis-cluster集群搭建的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。