为保证Redis服务的高可用性,可以设计一主一从Redis部署方案,从节点实时同步主节点的数据(单向主从复制原理),保证了两节点的数据一致性,同时当主节点宕机时,可切换从节点为主节点,防止数据丢失。下面介绍简单搭建流程,主从可搭建在一台服务器中,也可分别在两台服务器中,后者更为稳定。
下载redis的压缩包,安装redis,这里不做描述,可自行下载和安装,也可下载免安装压缩包(我搭建使用的免安装redis),安装好redis之后,我们进行主从架构搭建操作:
1、进入redis安装路径下,查看redis命令是否可用正常使用2、
2、修改redis配置文件,部署主从拓扑结构(修改前请先备份)
(1)设置主(Master)节点
vim redis.conf
按照如下文件内容进行配置:
daemonize yes #yes表示redis程序在后台启动 pidfile /usr/local/redis/redis-v3.0.7/var/run/redis.pid #设置存放进程运行pid的文件路径(根据具体部署路径修改) port 16379 #当前Redis节点(Master)监听的端口号,可自行修改 logfile "/usr/local/redis/redis-v3.0.7/log/redis.log" #设置日志文件的路径(根据具体部署路径修改) dir /usr/local/redis/redis-v3.0.7 #实现主从复制时,生成文件的路径(根据具体部署路径修改) slave-read-only no #是否设置为只读模式,默认为no,表示不设置 requirepass redis #连接当前Redis需要输入密码capitek才能正常访问,密码不推荐修改 masterauth redis #从节点(Slave)访问主节点(Master)时需要输入的密码,此处同样设定为capitek,但是可以与上述的requirepass不一致,密码不推荐修改 save "" #不启动持久化(RDB)模式 appendonly no #no表示不启动持久化(AOF)模式 |
(2)设置从(Slave)节点
vim redis.conf
按照如下文件内容进行配置:
daemonize yes #yes表示redis程序在后台启动 pidfile /usr/local/redis/redis-v3.0.7/var/run/redis.pid #设置存放进程运行pid的文件路径(根据具体部署路径修改) port 26379 #当前Redis节点(Master)监听的端口号,可自行修改 logfile "/usr/local/redis/redis-v3.0.7/log/redis.log" #设置日志文件的路径(根据具体部署路径修改) dir /usr/local/redis/redis-v3.0.7 #实现主从复制时,生成文件的路径(根据具体部署路径修改) requirepass redis #连接当前Redis需要输入密码capitek才能正常访问,密码不推荐修改 masterauth redis #从节点(Slave)访问主节点(Master)时需要输入的密码,此处同样设定为capitek,但是可以与上述的requirepass不一致,密码不推荐修改 slave-read-only no #是否设置为只读模式,默认为no,表示不设置 appendonly no #no表示不启动持久化(AOF)模式 save "" #不启动持久化(RDB)模式 slaveof 192.168.0.102 16379 #当前从节点(Slave)所依赖的主节点的ip地址和端口号 (例:192.168.0.102 主机上16379端口的Redis,此处根据主节点信息进行修改) |
3、先启动主节点,再启动从节点
./redis-server /usr/local/redis/redis-v3.0.7/redis.conf
#启动命令必须指定配置文件路径,上述主从关系配置才能生效。
ps -ef|grep redis
#查看进程是否启动,显示指定端口下的redis-server服务进程,参照下图
4、登录主节点和从节点查看主从拓扑状态
./redis-cli -p 16379 -a redis #登录命令
info replication #查看拓扑结构
(1)role:master表示当前已设置为主节点
connected_slaves: 1表示当前节点下有一个从节点
slave0展示的是从节点的信息
(2)role:slave表示当前为从节点
master_host表示主节点IP
master_port表示主节点端口
role:slave表示当前为从节点
master_host表示主节点IP
master_port表示主节点端口
5、在主节点中使用set 命令插入数据,在从节点中查看是否有该数据,有则说明主从复制生效,主从架构部署成功。
这里是简单的主从结构,主节点宕机之后需要手动进行主从切换,之后会整理手动主从切换内容。实际项目中一般会用到哨兵机制,可以实时监控和自动切换主从架构。