首页 >数据库 >Redis > 正文

详解Redis哨兵模式

转载2020-09-15 09:21:280684

下面由Redis教程栏目给大家介绍关于java基于redis有序集合实现排行榜,希望对需要的朋友有所帮助!

哨兵是一个独立的进程。
原理:哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。

Redis哨兵模式

哨兵的作用:

  • 通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。
  • 当哨兵监测到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换主机。

然而一个哨兵进程对Redis服务器进行监控,可能会出现问题,为此,我们可以使用多个哨兵进行监控。各个哨兵之间还会进行监控,这样就形成了多哨兵模式。

故障切换(failover)

假设主服务器宕机,哨兵1先检测到这个结果,系统并不会马上进行failover过程,仅仅是哨兵1主观的认为主服务器不可用,这个现象成为主观下线。当后面的哨兵也检测到主服务器不可用,并且数量达到一定值时,那么哨兵之间就会进行一次投票,投票的结果由一个哨兵发起,进行failover操作。切换成功后,就会通过发布订阅模式,让各个哨兵把自己监控的从服务器实现切换主机,这个过程称为客观下线。这样对于客户端而言,一切都是透明的。

配置哨兵模式

配置3个哨兵和1主2从的Redis服务器来演示这个过程。


服务类型是否是主服务器IP地址端口
Redis192.168.11.1286379
Redis192.168.11.1296379
Redis192.168.11.1306379
Sentinel-192.168.11.12826379
Sentinel-192.168.11.12926379
Sentinel-192.168.11.13026379

Redis哨兵模式

多哨兵监控Redis

首先配置Redis的主从服务器,修改redis.conf文件如下

# 使得Redis服务器可以跨网络访问
bind 0.0.0.0# 设置密码
requirepass "123456"# 指定主服务器,注意:有关slaveof的配置只是配置从服务器,主服务器不需要配置
slaveof 192.168.11.128 6379# 主服务器密码,注意:有关slaveof的配置只是配置从服务器,主服务器不需要配置
masterauth 123456

上述内容主要是配置Redis服务器,从服务器比主服务器多一个slaveof的配置和密码。

配置3个哨兵,每个哨兵的配置都是一样的。
在Redis安装目录下有一个sentinel.conf文件(复制3份)

# 禁止保护模式protected-mode no# 配置监听的主服务器,这里sentinel monitor代表监控,mymaster代表服务器的名称,可以自定义,192.168.11.128代表监控的主服务器,6379代表端口,2代表只有两个或两个以上的哨兵认为主服务器不可用的时候,才会进行failover操作。sentinel monitor mymaster 192.168.11.128 6379 2# sentinel author-pass定义服务的密码,mymaster是服务名称,123456是Redis服务器密码# sentinel auth-pass <master-name> <password>sentinel auth-pass mymaster 123456

上述关闭了保护模式,便于测试。
有了上述的修改,我们可以进入Redis的安装目录的src目录,通过下面的命令启动服务器和哨兵

# 启动Redis服务器进程./redis-server ../redis.conf
# 启动哨兵进程./redis-sentinel ../sentinel.conf

注意启动的顺序。首先是主机(192.168.11.128)的Redis服务进程,然后启动从机的服务进程,最后启动3个哨兵的服务进程。

以上就是详解Redis哨兵模式的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码
  • 相关标签:Redis
  • 本文转载于:learnku,如有侵犯,请联系a@php.cn删除
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • redis不是集群,redis是一种高可用的决方案,sentinel本身是一个独立运行的进程,可以部署在其他与Redis集群可通讯的机器中监控Redis集群。
    下面由Redis教程栏目给大家介绍关于java基于redis有序集合实现排行榜,希望对需要的朋友有所帮助!是一个独立的进程。
    redis集群需要设置Redis官方推荐的集群部署方,与主从复制方不同,可以在Master宕机时,自动实现主备切换。
    redis重启服务方,首先启动Redis服务器进程:./redis-server ../redis.conf;然后在启动服务:./redis-sentinel ..
    Redis集群的三种,分别是:1、主从【主从同步/复制】;2、【作用是监控redis主、从数据库是否正常运行】;3、集群【cluster-enable】。
    文章主要介绍Redis的内存型(以3.0为例),包括Redis占用内存的情况及如何查询、不同的对象类型在内存中的编码方、内存分配器(jemalloc)等。
    Redis是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。
    单节点的Redis已经就达到了很高的性能,为了提高可用性我们可以使用Redis集群。本文为大家细介绍了redis集群,希望可以在大家使用redis数据库时对大家有一定的帮助。
    Redis高可用的方案包括持久化、主从复制(及读写分离)、和集群。本教程为大家细介绍了redis中的主从复制,希望大家可以通过此入门教程更容易的学习redis知识。
    实现高可用的redis集群需要主从复制、redis持久化机制、机制、keepalived等的支持。如主从复制的作用:数据备份、读写分离、分布集群、实现高可用、宕机容错机制等。
    redis sentinel client是一个分布架构,首先要进行redis sentinel配置文件修改,一般情况下,至少会需要三个redis进行监控,我们可以通过修改端口启动多个sentinel
    Redis Sentinel是一个分布系统,你可以在一个架构中运行多个Sentinel进程,这些进程使用流言协议来接收关于主服务器是否下线的信息,并使用投票协议来决定是否执行自动故障迁移,以及选择哪个从服务器作为新的主服务器
    除了正常运行,ECMAscript 5添加了第二种运行:"严格"(strict mode)。顾名思义,这种使得Javascript在更严格的条件下运行。
    ps堆栈的理:1、堆栈需要把图层转换成智能对象;2、图层的混合和堆栈都是对图层进行运算,根据算法可以得到一个新的结果;3、堆栈可以处理大量的图层,算法有大有小等。
    本篇文章带大家了一下PHP五种常见的设计。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
    工厂是Java中最常用的设计之一。 这种类型的设计属于创建,因为此提供了创建对象的最佳方法之一。
    当程序开发完成,成为正产品时,我们希望将没有预测到的报错信息记录到错误日志中,而不是将这些报错信息展示给用户,因为用户极有可能利用这些暴露出脚本路径.....
    修正符就是几个字母,我们在每个正则表达中可以一次使用一个,也可以连续使用多个,每一个具一定的意义。
    PHP目前比较常见的五大运行:CGI,通用网关接口;FastCGI,常驻型CGI;CLI,命令行运行;Web,Apache等Web服务器运行的;ISAPI
    Redis恢复数据:1、 获取redis备份目录,2、 停止redis服务,3、拷贝redis备份文件(dump.rdb)到 /usr/local/redis/bin目录下...

    专题推荐

    推荐视频教程
  • 传智播客redis基础视频教程传智播客redis基础视频教程
  • 黑马云课堂NoSQL之Redis技术视频教程黑马云课堂NoSQL之Redis技术视频教程
  • 燕十八redis视频教程燕十八redis视频教程
  • NoSql-redis基础视频教程NoSql-redis基础视频教程
  • 视频教程分类