如果想要在本地模拟的话,需要克隆三台安装好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

 


 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐