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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhong_jianyu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值