php - Redis哨兵实现

标签 php redis logstash predis redis-sentinel

我们有一个设置:
2个PHP服务器
2台redis服务器作为主/从运行
1 日志服务器,存储elastcisearch中的各种日志

我们想为redis服务器实现自动故障转移,现在在php服务器中硬编码redis master地址。

并且在日志服务器中,它有一个 logstash 实例,从主服务器输入 redis 也在 logstash 配置中进行了硬编码。

我们在两台 redis 服务器上都安装了 redis sentinel,它运行良好。

但问题是如何掌握 php 和 logstash,否则这不是正确的方法。

对于 php,我找到了这个客户端包装器 https://github.com/Sparkcentral/PSRedis

但是还没有找到 logstash 的任何东西,我怀疑我只是在错误的方向上搜索

所以问题是这是否是正确的方向,如果没有人能指出我的话。

最佳答案

为了使用 Sentinel,请记住您需要三个实例,因此在您的设置中确保在日志服务器中安装一个 Sentinel 实例,并在每个 Redis 服务器实例中也安装一个。 Sentinel 的三个副本应该在被认为以彼此独立的方式失败的计算机/VM 上运行(因此同一物理主机中的多个 VM 不是一个好主意)。

也就是说,为了为 Sentinel 工作,您的客户需要按照此处指定的方式实现 Sentinel 协议(protocol):http://redis.io/topics/sentinel-clients .

https://github.com/Sparkcentral/PSRedis页面 我找不到关于他们究竟实现了什么的任何提示,他们是否按照我上面的消息中指定的那样实现了最新的 Sentinel 协议(protocol)?我会提出一个问题并询问他们是否实现了文档化的 Sentinel 协议(protocol):如果没有,他们应该,如果是,他们应该在 README 中记录它们。

显然 Predis 本身还没有实现对 Sentinel 的支持:https://github.com/nrk/predis/issues/131

如果你有时间,我建议:

  1. 询问 PSRedis 他们究竟实现了什么。
  2. 熟悉 Sentinel 文档中描述的协议(protocol),它是非常基础的东西
  3. 检查自己是否 PSRedis 以正确的方式实现它,如果没有,请提供拉取请求。

祝你黑客愉快。

关于php - Redis哨兵实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30083277/

相关文章:

c# - 加速我的简单 Redis .NET 应用程序

redis - 如何使用 StackExchange.Redis 写入从服务器?

regex - 获取定界符之间的相对大小字符串

php - htaccess 在 litespeed 中不起作用

php - 从当前 HTML 页面创建 PDF

PHP 数据回显布局不正确

php - 正则表达式练习 : reluctant quantifier with a lookahead assertion

java - 如何使用 Jedis 连接到 AWS ElastiCache for Redis 集群?

elasticsearch - 使用外部属性作为document_id会返回属性的名称,即document_id

elasticsearch - Logstash:迁移后丢失数据