当前位置: 首页 > 知识库问答 >
问题:

是否有一个golang redis客户端可以自动检测PubSub的新碎片?

山阳辉
2023-03-14
/* -----------------------------------------------------------------------------
 * CLUSTER Pub/Sub support
 *
 * For now we do very little, just propagating PUBLISH messages across the whole
 * cluster. In the future we'll try to get smarter and avoiding propagating those
 * messages to hosts without receives for a given channel.
 * -------------------------------------------------------------------------- */
void clusterPropagatePublish(robj *channel, robj *message) {
    clusterSendPublish(NULL, channel, message);
}

golang redis客户机库中有这样做的吗?我已经浏览了许多,感觉我需要自己编写这个逻辑,不断地轮询集群插槽或监听该信息的pubsub,以了解碎片何时增加或减少,并将现有的pubsub脚本从一个服务器移动到另一个服务器。

即。有很多golang lib,即使碎片的数量发生变化,也可以用集群处理正常的GET键。但是pubsub和集群是完全不同的事情,对吗?

共有1个答案

蓬长恨
2023-03-14

Redis集群中的PubSub通道在所有节点之间共享-消息通过内部总线传递,因此您不需要特殊的客户端和/或逻辑。

在Redis集群中,客户端可以订阅每个节点,也可以发布到每个其他节点。集群将确保发布的消息按需要转发。

来源:Redis集群规范

 类似资料:
  • 问题内容: Node.js是否可以一一处理客户端请求?我有一个项目,正在使用Node.js作为服务器端代理。根据我的理解,如果您使用回调进行响应,那么Node.js应该立即响应新请求,但是实际上Node.js直到完成上一个回调后才会响应新请求。这是正确的操作还是代码使用有误?请帮我。非常感谢你。以下是用于将请求重新发送到后端服务的代码。 更新: 客户端请求来自Angular 。在一页上,同时有多个

  • 所以我想做一个不和谐机器人来检测加入的用户是否有一个新的不和谐帐户。当某人有了这个,你点击他们的个人资料,克莱德会在那里,并说‘嗨,我是新来的不和谐。’有没有办法检测到这一点?如果有的话,我也想在一个特定的渠道发送一条消息。 事先谢谢你

  • 问题内容: 在Java(我敢肯定,在Java和其他社区中)之间存在着一个众所周知的争论,即是否应该测试简单的getter / setter方法。通常,这是关于代码覆盖率的。我们同意这是一个公开辩论,而不是在这里尝试回答。 有几篇关于使用Java反射来自动测试这种方法的博客文章。 是否有任何框架(例如jUnit)提供这种功能?例如,注释为“该测试T应该自动测试类C上的所有吸气剂/设置器,因为我断言它

  • Apache Thrift代码生成器生成类似于以下内容的类。字段可以为空,但是由于它作为值类型保存,所以还有另一个字段来确定它是否真的设置了: 我们的样式指南更喜欢将可为空的值包装为可选值,这样我们就不会忘记空检查。所以很容易看到这段代码: 但这是错误的-由于自动装箱,这个参数永远不会是,正确的调用应该如下所示: 有没有办法编写PMD规则来捕获此调用(使用将自动装箱的值类型调用)?

  • 很多客户使用E立方管理平台时,需要使用FTP方式完成附件或图片的传输,如何对客户端进行FTP检测呢? 下边介绍检测方法: 1、首先,客户端电脑的防火墙要开放 21号 端口 2、点击 E立方管理平台-->选项 这里有测试 3、FTP采用被动模式 选中和不选中,分别 检测 一下(检测完一种后,关闭窗体重新打开再测试另外一种) 看见如下提示就表示可以使用这种方式了 >

  • 我有一个简单的udp客户机/服务器程序。 如果客户端正在失去连接,或者服务器正在重新启动,客户端不会自动重新连接。我总是要手动重启客户端。 这是我的客户端套接字配置:

  • 例如,我知道在检查字符串时,可以执行如下操作 但是是否有一种方法来检查一个字符是否匹配一个可能性列表?或者我必须逐一检查,例如 ...等。

  • 问题内容: 我想使用redis的pubsub传输一些消息,但不想使用阻止,例如以下代码: 最后一部分将被阻止。我只想检查给定频道中是否有数据,该如何完成?有没有类似的方法? 问题答案: 我认为那不可能。通道没有任何“当前数据”,您订阅了一个通道并开始接收该通道上其他客户端推送的消息,因此它是一个阻塞的API。另外,如果您查看pub / sub 的Redis Commands文档,将会更加清楚。