基于 phpredis 扩展的 redis-sentinel 客户端。
redis-sentinel 就像他的名字一样,他是一个哨兵,监控 master 状态,如果超过规定时间没有响应,则自动进行主从切换,期间会有一段时间(决定于具体的配置参数)redis集群无法提供服务 。原理类似 mysql 的 MHA。
示例:
$sentinel = new \Jenner\RedisSentinel\Sentinel(); $sentinel->connect('127.0.0.1', 6379); $address = $sentinel->getMasterAddrByName('mymaster'); $redis = new Redis(); $redis->connect($address['ip'], $address['port']); $info = $redis->info(); print_r($info);
$sentinel_pool = new \Jenner\RedisSentinel\SentinelPool(); $sentinel_pool->addSentinel('127.0.0.1', 26379); $sentinel_pool->addSentinel('127.0.0.1', 26380); $address = $sentinel_pool->master('mymaster'); print_r($address); $redis = $sentinel_pool->getRedis('mymaster'); $info = $redis->info(); print_r($info);
Redis的架构分为:redis单机、redis主从、redis集群、redis-sentinel架构,其中redis-sentinel相对于redis集群实现了高可用等特性,对于需要保证稳定性以及核心功能的redis来说,一般会采用redis-sentinel的架构模式。前面2篇文章分别介绍了redis的单机、redis集群的nodeJS配置,本篇文章简单介绍一下redis-sentinel在N
Redis-sentinel是Redis的作者antirez完成的,因为Redis实例在各个大公司的应用,每个公司都需要一个Redis集群的管理工具,被迫都自己写管理工具来管理Redis集群,antirez考虑到社区的急迫需要(详情),花了几个星期写出了Redis-sentinel。 Redis-sentinel的三大功能: * 监测 * 通知 * 自动故障恢复 首先Redis-sentinel要
我在主从安装中成功地使用了Redis for Windows(2.6.8-pre2)。但是,我需要提供一些自动故障转移功能,而sentinel似乎是最受欢迎的选择。当我在哨兵模式下运行redis时,哨兵会连接,但它总是认为主人关机了。此外,当我运行sentinel master命令时,它报告有0个奴隶(不是真的),并且没有其他哨兵(同样,不是真的)。就像它连接到主程序,但不正确。 还有人在Wind
我可以将任何问题连接到远程哨兵,但当然我得到了同样的响应 127.0.0.1:8005>sentinel sentinels redisftdev(空列表或设置)
我知道redis sentinel是在多个redis实例之间配置HA(高可用性)的一种方式。正如我所看到的,在任何给定的时间,都有一个redis实例主动地为客户机请求服务。另外还有两个服务器处于待机状态(等待发生故障,因此其中一个可以再次运行)。 是资源浪费吗? 是否有更好的方法充分利用现有资源? Redis集群是Redis Sentinel的替代方案吗? 我已经查了redis的sentinel和
基本上,我试图设置一个Redis-sentinel docker实例,并希望从我的应用程序容器进行调用。我正在运行的问题是,redis-sentinel容器链接到应用程序容器。 因此,最初该应用程序询问哨兵进程关于redis Master的情况。哨兵接着说是“127.0.0.1”。但是应用程序容器假定它是容器本地的。这可以通过在sentinel进程开始时传递的公告-IP/公告-端口参数来克服。然而
介绍 RedisDS基于Jedis封装,需自行引入Jedis依赖。 使用 引入依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> 配置 在ClassPath(或者src/main/reso