cluster-redis高可用集羣搭建

0.機器準備:3主3從,,1主配1從,一共6臺機器
Adding replica 192.168.0.204:6379 to 192.168.0.201:6379
Adding replica 192.168.0.205:6379 to 192.168.0.202:6379
Adding replica 192.168.0.206:6379 to 192.168.0.203:6379
M: 6d0276bf84cff6692c23f5ad1e975566a0f87e83 192.168.0.201:6379
   slots:[0-5460] (5461 slots) master
M: 744d8d56ab76ce53e08c97953c6f9322a1798232 192.168.0.202:6379
   slots:[5461-10922] (5462 slots) master
M: c4e5e354fcdb19712021c1ecbf670ba7933c4508 192.168.0.203:6379
   slots:[10923-16383] (5461 slots) master
S: fb5a34e3d4a65c75f5226c41783abb3fa03cbd3b 192.168.0.204:6379
   replicates 6d0276bf84cff6692c23f5ad1e975566a0f87e83
S: ad7513f1cc3178f567d1746f7ea9c31b5d3ed0e2 192.168.0.205:6379
   replicates 744d8d56ab76ce53e08c97953c6f9322a1798232
S: 9308e009cea372796180d5d4e3985b5b975d0b2f 192.168.0.206:6379
   replicates c4e5e354fcdb19712021c1ecbf670ba7933c4508

注意:以上所有的機器安裝不走一樣

1.安裝源碼編譯所需要的包:
yum install gcc tcl

2.上傳redis包到/usr/local/src文件夾
cd /usr/local/src

3.創建安裝目錄:mkdir /usr/local/redis

4.解壓:tar -zxvf redis-5.0.3.tar.gz

5.進入redis-5.0.3執行安裝命令,安裝到/usr/local/redis
make PREFIX=/usr/local/redis install

6.把redis配置成服務:
cp /usr/local/src/redis-5.0.3/utils/redis_init_script /etc/rc.d/init.d/redis


修改相應配置
vi /etc/rc.d/init.d/redis
在第二行增加:#chkconfig: 2345 80 90
端口默認是REDISPORT=6379(和後面的配置文件名有關)
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli

CONF="/usr/local/redis/conf/${REDISPORT}.conf"

還有在start節點$EXEC $CONF後面加上& 變成$EXEC $CONF &

7.把redis註冊成服務:
chkconfig --add redis
--開機啓動
chkconfig redis on

打開防火牆對應端口:6379,16379(集羣通信端口是端口+10000)
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 16379 -j ACCEPT
重啓防火牆
service iptables restart

8.集羣配置:
創建配置文件目錄:
mkdir /usr/local/redis/conf
並複製配置文件到目錄中並改名字爲上面所配置的端口號
cp /usr/local/src/redis-5.0.3/redis.conf /usr/local/redis/conf/6379.conf
然後修改6379配置文件
vi /usr/local/redis/conf/6379.conf
bind 127.0.0.1改成bind 具體的IP
daemonize no改成daemonize yes
pidfile /var/run/redis.pid改成pidfile /var/run/redis_6379.pid
databases 16改成databases 1
cluster-enabled   yes
cluster-config-file  /usr/local/redis/conf/nodes.conf
cluster-node-timeout 15000
appendonly yes
requirepass 1qaz@WSX
masterauth 1qaz@WSX
如果需要密碼需要把(1qaz@WSX是密碼)# requirepass foobared改成requirepass 1qaz@WSX

持久化方案配置:
(a)RDB-快照形式(redis默認是採用這種方式):(定期將當前時刻的數據保存磁盤中)會產生一個dump.rdb文件,特點:會存在數據丟失,性能較好,數據備份
vi /usr/local/redis/conf/6379.conf
如:
save 900 1
save 300 10
save 60 10000

(b)AOF-append only file  (所有對redis的操作命令記錄在aof文件中),恢復數據,重新執行一遍即可, 特點:每秒保存,數據比較完整,耗費性能
需要修改:
appendonly no  --》改成   appendonly yes

同時開啓兩個持久化方案,則按照 AOF的持久化放案恢復數據
默認是按照rdb的方式恢復數據,如果開啓了AOF,就是用AOF恢復數據,數據是存在於/usr/local/redis/bin/appendonly.aof文件中

9.啓動redis服務:service redis start
service redis stop停止服務回提示連接不上,可以通過以下命令進行shutdown
如:redis-cli -h 192.168.0.121 shutdown
也可以直接殺掉進程,但是需要刪除redis_6379.pid文件後才能在啓動,不然會報錯

10.把redis添加到環境變量中:
vi /etc/profile
## redis evn
export PATH=$PATH:/usr/local/redis/bin

source /etc/profile

11.啓動所有redis後,創建集羣,只要登錄其中一臺
登錄
redis-cli -p 6379 -h 192.168.0.209 -a 1qaz@WSX
創建集羣
redis-cli -a 1qaz@WSX --cluster create --cluster-replicas 1 192.168.0.201:6379 192.168.0.202:6379 192.168.0.203:6379 192.168.0.204:6379 192.168.0.205:6379 192.168.0.206:6379

查看節點:
cluster nodes
查看集羣
cluster info

如果需要操作需要-c,表示以集羣的方式打開,否則會報錯(error) MOVED
redis-cli -p 6379 -h 192.168.0.201 -a 1qaz@WSX -c

橫向擴展:
redis-cli --cluster add-node 192.168.5.100:8007 192.168.5.100:8001
刪除三個從節點(需要退出redis-cli)---後面的字符串是節點ID
redis-cli -a 1qaz@WSX --cluster del-node 192.168.0.204:6379 19fb4e5b08d5313a7fe851eec9cc50cc5a17eec4
redis-cli -a 1qaz@WSX --cluster del-node 192.168.0.206:6379 05c6d56fea89acac959247e4f23b97ea8c8599a2
redis-cli -a 1qaz@WSX --cluster del-node 192.168.0.208:6379 26eeffac6b684fe34a16bc60c62e99c407a2ec02


10.測試:
redis-cli
set zjy zhongjianyu
get zjy

用法:Redis-cli [OPTIONS] [cmd [arg [arg ...]]]
-h <主機ip>,默認是127.0.0.1
-p <端口>,默認是6379
-a <密碼>,如果redis加鎖,需要傳遞密碼
--help,顯示幫助信息

如:redis-cli -h 192.168.0.X進行連接
帶密碼的:redis-cli -h 192.168.3.236 -a 1qaz@WSX

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