一、说明
该教程为redis集群-主从部署方式,不包含redis的安装过程,如需redis安装教程请移步以下链接:
如需redis其他方式集群部署,请移步以下链接:
二、环境信息
操作系统:linux centOS 7
redis版本:redis-6.0.7
下载地址:http://download.redis.io/releases/redis-6.0.7.tar.gz
三、介绍
redis虽然有RDB和AOF两种持久化机制可以将数据存储到硬盘上,但是单机部署时,访问量过大,会出现I/O瓶颈,当硬盘或服务器出现异常,会导致数据不可用,所以引入主从模式解决该问题。
redis提供了replication复制功能,可将master节点数据自动更新至slave节点中,一个master可以有多个slave节点,将增、删、改操作链接master节点处理,将查询操作连接slave节点处理,可实现读写分离,缓解单机部署I/O瓶颈,当master节点出现异常时,slave节点还可以正常获取存储信息。
主从集群优缺点:
优点:具有读写分离,提高效率,数据备份
缺点:没有容错机制,当master节点宕机后,slave节点只可做查询,不可增删改。部分业务功能会收到影响,需要人为干预恢复master节点。
四、部署流程
主redis-1:192.168.221.101
从redis-2:192.168.221.102
从redis-3:192.168.221.103
1.连接redis-1服务器修改redis.conf配置文件
[root@bogon ~]# cd /opt/redis-6.0.7
[root@bogon redis-6.0.7]# vi redis.conf
bind 0.0.0.0 #允许所有IP访问
daemonize yes #开启守护进行
requirepass 123456 #客户端连接密码
2.分别连接redis-2、redis-3服务器,修改redis.conf配置文件
[root@bogon ~]# cd /opt/redis-6.0.7
[root@bogon redis-6.0.7]# vi redis.conf
bind 0.0.0.0 #允许所有IP访问
daemonize yes #开启守护进行
replicaof 192.168.221.101 6379 #master主节点的ip 端口
masterauth 123456 #master主节点密码
requirepass 123456 #客户端连接密码
2.分别连接redis-1、redis-2、redis-3服务器,启动redis服务
[root@bogon redis-6.0.7]# src/redis-server redis.conf
3.连接redis-1主节点服务器看集群情况,显示当前为master节点,有两个slave节点
[root@localhost redis-6.0.7]# src/redis-cli
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.221.102,port=6379,state=online,offset=1400,lag=1
slave1:ip=192.168.221.103,port=6379,state=online,offset=1400,lag=0
master_replid:0c60fdbf98b694fc310a5a1b6ea711bb9b5db6ba
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:1400
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:1400
五、验证
1.连接redis-1主节点从服务存储信息
[root@bogon redis-6.0.7]# src/redis-cli
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> set aaa zhangsan
127.0.0.1:6379> get aaa
"zhangsan"
2.连接redis-2、redis-3查看数据同步情况
[root@bogon redis-6.0.7]# src/redis-cli
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> get aaa
"zhangsan"
3.连接redis-1主节点服务器,将redis服务器停止
[root@bogon redis-6.0.7]# src/redis-cli shutdown
[root@bogon redis-6.0.7]# ps -ef|grep redis
root 2405 2294 0 10:08 pts/0 00:00:00 grep --color=auto redis
4.连接redis-2、redis-3查看数据查询正常,因slave节点不可增删改,所以新增数据会出现异常
[root@bogon redis-6.0.7]# src/redis-cli
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> get aaa
"zhangsan"
127.0.0.1:6379> set bbb
(error) ERR wrong number of arguments for 'set' command