redis实现读写分离和哨兵机制
如果想要在本地模拟的话,需要克隆三台安装好Redis的虚拟机。首先我们需要找到redis.conf,sentinel.conf两个文件,他们分别是redis的主要配置文件,和哨兵机制的配置文件一般都在redis安装包解压后的文件夹目录下:接下来我们开始进入读写分离:所谓的读写分离,其实是说主服务器实现读写操作权限,从服务器实现读操作。执行流程如下:1、当从Redis启动时,会给主Redis发送一个
如果想要在本地模拟的话,需要克隆三台安装好Redis的虚拟机。
首先我们需要找到redis.conf,sentinel.conf两个文件,他们分别是redis的主要配置文件,和哨兵机制的配置文件
一般都在redis安装包解压后的文件夹目录下:
接下来我们开始进入读写分离:
所谓的读写分离,其实是说主服务器实现读写操作权限,从服务器实现读操作。
执行流程如下:
1、当从Redis启动时,会给主Redis发送一个同步数据请求(sync命令)
2、当主redis接收到sync命令后,会将数据快照起来(执行rdb持久化),并将快照期间接收的命令缓存起来。
3、快照完成后,redis会将快照文件和所有缓存命令同步到从redis。
4、从redis收到文件和命令后,载入快照并执行缓存的命令。
下面就是实现读写分离的步骤,只需修改redis配置文件即可:
#进入redis目录下
cd /home/software/redis/redis-5.0.5
#vi编辑器打开redis配置文件
vi redis.conf
找到如下图所示的位置
修改如上图红色位置的地方,
第一处修改redis主服务器的IP地址和端口号
第二处是是修改主服务器的redis验证密码
replicaof 192.168.229.128 6379
masterauth jack987
修改完成成保存。然后重新启动redis服务器。
./redis-server ../redis.conf
同理其他的从服务器也同样操作。从服务器默认只读。当然也可以在redis.conf设置为可读写。
下面就讲解redis哨兵机制,同样只需要修改配置文件(sentinel.conf)
vi sentinel.conf
修改配置
#修改主服务IP地址和端口号
sentinel monitor mymaster 192.168.229.129 6379 2
#修改多少秒,执行重新选举主redis服务器
sentinel down-after-milliseconds mymaster 3000
修改完成后需要加载哨兵配置文件,重启redis服务器
#加载哨兵机制配置
./redis-server ../sentinel.conf --sentinel
#启动redis服务器
./redis-server ../redis.conf
同理其他的从redis也如此操作,即可实现哨兵机制!实现redis的高可用和容错机制。
可能会出现的问题,报错信息
Please check the Redis logs for details about the RDB error.
出现该问题的原因:
强制停止redis快照导致,redis运行用户没有权限写rdb文件或者磁盘空间满了
解决方案:
config set stop-writes-on-bgsave-error no
更多推荐
所有评论(0)