实战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節點的配置文件redis.conf
1、修改運行端口為7001 (7002 7003 …)
2、打開集群開關
將redis-1至redis-6的端口:port以次修改為7001-7006 前的注釋去掉(45行)
將cluster-enabled yes 前的注釋去掉(632行)
截圖是redis-1的修改,其他5個和上面一樣。
啟動每個redis實例
以第一個實例為例,命令如下
redis6個實例啟動完成之后,查看一下是不是都啟動起來了
ps -ef | grep redis
上傳redis-3.0.0.gem ,安裝 ruby用于搭建redis集群的腳本
(4)使用 ruby 腳本搭建集群。
附上軌跡記錄:
[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
保存,
在windows環境下,使用redis客戶端進行遠程連接redis集群
| -h | 指定連接reids的ip地址 |
| -p | 指定遠程連接redis的端口號 |
| -c | 指定客戶端連接的是redis集群,如果不添加-c參數,相當于連接的redis單機 |
測試驗證一下
從圖中可以看出,成功的將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集群中添加name值為gblfy
第三步:退出集群,單機連接7001,嘗試獲取name值為gblfy
異常信息如下:
(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集群搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 企业实战_05_MyCat用户密码加密
- 下一篇: 第七篇:Spring Boot 整合_T