騰訊雲,阿里雲redis5.0.2集羣搭建三主三從,centos7.6

一,本次實驗在騰訊雲

前提關閉防火牆 想要後期再開 增加防火牆策略

主機3臺分別:t1db,t2db,t3db

系統:centos7.6

騰訊雲的安全組必須打開就算幾臺主機在一個安全組也要打開,騰訊比較安全組權限狠低,不開我就等了半天

redis端口:3121,3122

redis集羣端口:13121,13122  備註:集羣端口爲redis端口加10000,不需要配置,但防火牆或者安全組tcp必須打開

redis版本:5.0.2

 

2,安裝redis

wget http://download.redis.io/releases/redis-5.0.2.tar.gz

tar -zxvf redis-5.0.2.tar.gz

yum install -y make gcc

make

make install

cd utils/

./install_server.sh

提示默認端口port:6379 我修改爲3121

redis文件位置,下面的6379都變成3121,後面我就不說位置在哪了

Port           : 6379
Config file    : /etc/redis/6379.conf
Log file       : /var/log/redis_6379.log
Data dir       : /var/lib/redis/6379
Executable     : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli

增加3122實例啓動,這一步應該放在修改3212.conf之後,但既然說安裝了 我就放這了

mkdir -p /var/lib/redis/3122

cp /etc/init.d/redis_3122 /etc/init.d/redis_3122

vim /etc/init.d/redis_3122
把裏面3121的都改成3122

chkconfig --add redis_3122

啓動關閉重啓命令

systemctl restart redis_3121        /重啓
systemctl restart redis_3122     /重啓
systemctl stop redis_3121        /關閉
systemctl stop redis_3122        /關閉
systemctl start redis_3121        /啓動
systemctl start redis_3122        /啓動

啓動不了用這種方法
/usr/local/bin/redis-server /etc/redis/3121.conf
/usr/local/bin/redis-server /etc/redis/3122.conf

redis-cli -h ip(例如:127.0.0.1) -p 3121 shutdown  /關閉

查看端口netstat -apn | grep 3121

 

三,3121.conf和3122.conf配置

vi  /etc/redis/3121.conf

允許遠程訪問

bind 0.0.0.0

protected-mode no

# 綁定服務器IP地址,這個其實0,0,0,0也行 爲了安全用本地ip只能本機登錄
bind 172.16.0.8

# 綁定端口號,必須修改,以此來區分Redis實例
port 3121

# 後臺運行
daemonize yes

# 修改pid進程文件名,以端口號命名
pidfile /var/run/redis_3121.pid

# 修改日誌文件名稱,以端口號爲目錄來區分
logfile /var/log/redis_3121.log

# 修改數據文件存放地址,以端口號爲目錄名來區分
dir /var/lib/redis/3121

# 啓用集羣
cluster-enabled yes

# 配置每個節點的配置文件,同樣以端口號爲名稱
cluster-config-file nodes-3121.conf

# 配置集羣節點的超時時間,可改可不改
cluster-node-timeout 15000

# 啓動AOF增量持久化策略
appendonly yes

# 發生改變就記錄日誌
appendfsync always

#設置redis訪問密碼 ,測試中所以沒用,爲了安全生產環境請加上
requirepass ssxx 
   
#設置redis集羣間的訪問密碼,同上面密碼一致,測試中所以沒用,爲了安全生產環境請加上
masterauth ssxx    

把3121.conf複製命名3122.conf

vi  /etc/redis/3122.conf

把3121都修改成3122

好了這裏第一臺主機t1db的就配置完成  ,啓動

systemctl start redis_3121        /啓動
systemctl start redis_3122

t2db和t3db一樣 安裝

然後把3121.conf和3122.conf的配置丟到, t2db和t3db主機裏只需要修改3121.conf和3122.conf綁定ip

bind 172.16.0.9

 

bind 172.16.0.10

三臺主機6個實例都啓動

四,創建集羣

建立集羣時

Waiting for the cluster to join
..........................................................如果這一步等的太久,這麼多點點 點 大概率是防火牆或者安全組沒開集羣端口

 

如果建立集羣失敗,刪除6給實例的文件/var/lib/redis/3122和/var/lib/redis/3121這裏的文件目下的

dump.rdb  和nodes-3122.conf

dump.rdb 和 nodes-3121.conf   

無密碼建立

redis-cli --cluster create 172.16.0.8:3121 172.16.0.8:3122 172.16.0.9:3121 172.16.0.9:3122 172.16.0.10:3121 172.16.0.10:3122 --cluster-replicas 1

 

有密碼建立

redis-cli -a ssxx --cluster create 172.16.0.8:3121 172.16.0.8:3122 172.16.0.9:3121 172.16.0.9:3122 172.16.0.10:3121 172.16.0.10:3122 --cluster-replicas 1

下面是無密碼建立後的顯示

>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 172.16.0.9:3122 to 172.16.0.8:3121
Adding replica 172.16.0.8:3122 to 172.16.0.9:3121
Adding replica 172.16.0.10:3122 to 172.16.0.10:3121
>>> Trying to optimize slaves allocation for anti-affinity
[OK] Perfect anti-affinity obtained!
M: 1c708a6b01f860835c209e8881d3bc0934734076 172.16.0.8:3121
   slots:[0-5460] (5461 slots) master
S: 2d46d434da5a196fd435f5a4ffb09b9cefbc8f58 172.16.0.8:3122
   replicates 28dc96a888d087c20306231d5713672da0ec8951
M: 28dc96a888d087c20306231d5713672da0ec8951 172.16.0.9:3121
   slots:[5461-10922] (5462 slots) master
S: 8696e44653ae48dc85209face86e02ba0de65e56 172.16.0.9:3122
   replicates 4716bd5554eb9514f5ffba973682ec4bf302f7e9
M: 4716bd5554eb9514f5ffba973682ec4bf302f7e9 172.16.0.10:3121
   slots:[10923-16383] (5461 slots) master
S: 7317a02362de2199e32b3c570f93149041882e6d 172.16.0.10:3122
   replicates 1c708a6b01f860835c209e8881d3bc0934734076
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 172.16.0.8:3121)
M: 1c708a6b01f860835c209e8881d3bc0934734076 172.16.0.8:3121
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
S: 7317a02362de2199e32b3c570f93149041882e6d 172.16.0.10:3122
   slots: (0 slots) slave
   replicates 1c708a6b01f860835c209e8881d3bc0934734076
M: 4716bd5554eb9514f5ffba973682ec4bf302f7e9 172.16.0.10:3121
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
M: 28dc96a888d087c20306231d5713672da0ec8951 172.16.0.9:3121
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: 8696e44653ae48dc85209face86e02ba0de65e56 172.16.0.9:3122
   slots: (0 slots) slave
   replicates 4716bd5554eb9514f5ffba973682ec4bf302f7e9
S: 2d46d434da5a196fd435f5a4ffb09b9cefbc8f58 172.16.0.8:3122
   slots: (0 slots) slave
   replicates 28dc96a888d087c20306231d5713672da0ec8951
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

到此處成功

修改好配置可以繼續建立集羣

五,查看集羣狀態

redis-cli --cluster check 172.16.0.8:3121

172.16.0.8:3121 (1c708a6b...) -> 0 keys | 5461 slots | 1 slaves.
172.16.0.10:3121 (4716bd55...) -> 0 keys | 5461 slots | 1 slaves.
172.16.0.9:3121 (28dc96a8...) -> 0 keys | 5462 slots | 1 slaves.
[OK] 0 keys in 3 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 172.16.0.8:31621)
M: 1c708a6b01f860835c209e8881d3bc0934734076 172.16.0.8:31621
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
S: 7317a02362de2199e32b3c570f93149041882e6d 172.16.0.12:31622
   slots: (0 slots) slave
   replicates 1c708a6b01f860835c209e8881d3bc0934734076
M: 4716bd5554eb9514f5ffba973682ec4bf302f7e9 172.16.0.12:31621
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
M: 28dc96a888d087c20306231d5713672da0ec8951 172.16.0.9:31621
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: 8696e44653ae48dc85209face86e02ba0de65e56 172.16.0.9:31622
   slots: (0 slots) slave
   replicates 4716bd5554eb9514f5ffba973682ec4bf302f7e9
S: 2d46d434da5a196fd435f5a4ffb09b9cefbc8f58 172.16.0.8:31622
   slots: (0 slots) slave
   replicates 28dc96a888d087c20306231d5713672da0ec8951
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

 

六,使用集羣,隨意一個端口實例都行

[root@t1db ~]# redis-cli -c -h 172.16.0.8 -p 3121
172.16.0.8:3121> set a test
-> Redirected to slot [15495] located at 172.16.0.10:3121
OK
172.16.0.10:3121> get a
"test"
172.16.0.10:31621> exit
[root@t1db ~]# redis-cli -c -h 172.16.0.8 -p 3122
172.16.0.8:3122> get a
-> Redirected to slot [15495] located at 172.16.0.10:3121
"test"
172.16.0.12:3121> exit
[root@t1db ~]# redis-cli -c -h 172.16.0.9 -p 3122 
172.16.0.9:3122> get a
-> Redirected to slot [15495] located at 172.16.0.10:3121
"test"
172.16.0.10:3121> exit

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章