Redis 多服务器集群搭建
Redis 多服務器集群搭建
近期,想到之前使用的Redis集群測試使用的是單服務器上的偽集群,重溫《Redis深度歷險-核心原理與應用實踐》的案例,覺得還是搭建一下多服務器集群來玩一玩會更有感觸。
常規操作,記錄一下搭建集群的過程。
1 條件
- 基于redis6.0.9版本進行集群的搭建
- 集群要求至少六個節點,即每個主節點配置1個從節點,本集群是使用了3個主節點并每個下面掛一個從節點,三個主節點分布在3臺服務器上。
集群配置信息如下:
| 10.1.24.128(服務器名master) | 6751 | 6752 |
| 10.1.24.129(slave1) | 6751 | 6752 |
| 10.1.24.130(slave2) | 6751 | 6752 |
端口名為什么要叫675*呢?因為掃地生原名的諧音是675,所以讀者可以自定義端口名。
2 集群配置
關于Redis的基本知識也可以看看掃地生之前的學習筆記
在第一臺服務器(10.1.24.128)上操作
make或make install時出現如下錯誤:
gcc版本問題,新版本的,Redis6.0以上,需要更高版本的gcc,而centOS 7自帶的GCC版本往往不符合。
解決方法:
#升級到 5.3及以上版本 yum -y install centos-release-scl yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutilsscl enable devtoolset-9 bash#注意:scl命令啟用只是臨時的,推出xshell或者重啟就會恢復到原來的gcc版本。 #如果要長期生效的話,執行如下: echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile進入redis-cluster目錄,修改redis.conf并分別拷貝到6751,6752
修改配置文件內容如下:
1)屏蔽限制本地訪問, 將bind 127.0.0.1 修改為 bind 0.0.0.0
2) protected-mode保護模式從yes改為no,實現免密登錄
3)daemonize后的no改為yes
4)去掉cluster-enabled yes 前面的注釋
5)去掉cluster-node-timeout 前面的注釋
6)port后的端口改為6751
?
7)將運行的pid路徑改為對應的端口號便于管理,將redis.conf文件,復制到對應的目錄下
cp redis.conf 67518)修改node配置
cluster-config-file nodes-6751.conf # 修改為對應的節點ID9)再次編輯redis.conf 將port參數修改 6751 ==> 6752,復制到對應目錄下.
sed -i 's/6751/6752/g' redis.confcp redis.conf 6752注意點: 在啟動服務之前要修改配置文件中對應的dump dir目錄,否則默認目錄是 ./ 需要改成對應的絕對路徑,否則會造成路徑沖突,導致啟動失敗
查看啟動的服務:
也可以用RDM連接測試:
直接將master中的集群配置復制到其他兩個服務器即可,需要注意的是,需要設置對應的端口與目錄
scp -r /usr/environment/redis-cluster/ root@slave1:/usr/environmentscp -r /usr/environment/redis-cluster/ root@slave2:/usr/environment效果如下:
第一臺(master)
第二臺(slave1):
第三臺(slave2):
3 集群搭建
使用Redis客戶端執行命令:
/usr/environment/redis-cluster/6751/bin/redis-cli --cluster create --cluster-replicas 1 10.1.24.128:6751 10.1.24.128:6752 10.1.24.129:6751 10.1.24.129:6752 10.1.24.130:6751 10.1.24.130:6752注意:上述指令中的IP地址不能用主機名代替,因為redis對主機名的識別不是很友好,,如果改成下面這個會出現錯誤:
/usr/environment/redis-cluster/6751/bin/redis-cli --cluster create --cluster-replicas 1 master:6751 master:6752 slave1:6751 slave1:6752 slave2:6751 slave2:6752參數說明:
--cluster 集群管理命令 后面可以執行集群相關的命令
--cluster-replicas 1 代表每個Master攜帶一個Slave
create 創建集群命令
4 客戶端測試
開啟客戶端 鏈接任意一個Master節點
redis-cli -h 10.1.24.128 -c -a 密碼 -p 端口參數:
-c: 連接到集群
我們可以看到,當我們set一個鍵值對的時候,Redis會自動為我們的key計算CRC16值,然后對16384取模,獲取key對應的hash slot,然后通過判斷該槽被那個Master所占用,幫我們重定向到那個Master節點,將鍵值對存入。
查看集群信息:
cluster nodes
通過RDM的連接圖標可以明顯區別集群連接和非集群連接的區別:
5 參考文章
參考文章1
總結
以上是生活随笔為你收集整理的Redis 多服务器集群搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大学物理实验——拉伸法测杨氏模量
- 下一篇: jmeter性能测试使用梯度测试的方法