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