redis主从哨兵配置要三思

安装环境:centos7.5 + redis5.0 +redis.clients.3.0.1

最近在公司搭建了几台服务器环境,mongo + redis + tomcat + JDK + elasticsearch + rabbitmq,博主不是运维,是个java开发,linux命令只限于会发布tomcat。公司安装redis是主从配置,主是aof追加,从数据库是rdb快照备份。但中途百度的时候发现还有主从哨兵模式,能自动切换宕机的数据库,在虚拟机自己练了下手,但后面觉得也没有那么好。

先编译安装,结果:


配置主数据库:

port 端口

timeout 连接过期时间

requirepass 密码 主从设置一样的密码。

daemonize yes 守护模式

pidfile 开启守护模式后,pid文件目录

appendonly yes 是否开启aof追加

appendfsync everysec默认每秒追加aof文件

#save 900 1
#save 300 10
#save 60 10000 注释掉rdb配置,主数据库只要追加

dir(搜索also be created inside this directory) 数据库文件存放的位置

masterauth 主数据库连接密码 如果不配置的话,当主数据库断线重连后,是无法连接上的。


配置从数据库:

port 端口

timeout 连接过期时间

requirepass 密码 主从设置一样的密码。

daemonize yes 守护模式

pidfile 开启守护模式后,pid文件目录

appendonly no  关闭aof追加

save 900 1

save 300 10

save 60 10000 rdb快照方式持久化磁盘

dir(搜索also be created inside this directory) 数据库文件存放的位置

slaveof <masterip> <masterport>当谁的从数据库

masterauth 主数据库密码

slave-read-only yes 只读


配置sentinel:

port 端口

daemonize yes 守护模式

sentinel monitor <master-name> <ip> <redis-port> <quorum> 主数据库名 ip 端口 票数(如果有quorum票认为主数据库下线了,那就选举一个新的主数据库)

sentinel auth-pass <master-name> <password> 主数据库密码

其他的就都用默认的。


启动:

先启动主数据库,再启动从数据库,最后启动sentinel哨兵。


但主从哨兵有几个问题:

1.通过JedisSentinelPool连接redis,取到的实例都是Master,slave实例只能是热备数据,读写分离做不到。除非自己实现java代码获取从数据库,大佬的博客:扩展Redis的Jedis客户端,哨兵模式读请求走Slave集群。文章作者参照官方jedis客户端代码,自己实现了哨兵模式下获取slave连接池。但是为什么官方的jar包不提供实现呢?

2.slave晋升为master还是用快照rdb方式,但是rdb的方式并不适用于当master,大佬的博客:redis两种持久化方式的优缺点

  (1)如果你需要尽量避免在服务器故障时丢失数据,那么 RDB 不适合你。 虽然 Redis 允许你设置不同的保存点(save point)来控制保存 RDB 文件的频率, 但是, 因为RDB 文件需要保存整个数据集的状态, 所以它并不是一个轻松的操作。 因此你可能会至少 5 分钟才保存一次 RDB 文件。 在这种情况下, 一旦发生故障停机, 你就可能会丢失好几分钟的数据。

  (2)每次保存 RDB 的时候,Redis 都要 fork() 出一个子进程,并由子进程来进行实际的持久化工作。 在数据集比较庞大时, fork()可能会非常耗时,造成服务器在某某毫秒内停止处理客户端; 如果数据集非常巨大,并且 CPU 时间非常紧张的话,那么这种停止时间甚至可能会长达整整一秒。 虽然 AOF 重写也需要进行 fork() ,但无论 AOF 重写的执行间隔有多长,数据的耐久性都不会有任何损失。

所以搭建下来,个人感觉redis主从哨兵配置也不是很好。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值