【问题标题】:redis accumulate & publish a set of operationsredis 累积&发布一组操作
【发布时间】:2014-06-06 05:21:33
【问题描述】:

是否可以指示 Redis 累积一组操作,然后发出“全部发布”命令来发布整个操作集(按线性顺序)?

所以你会以某种方式设置一个标记 (startpublish?),然后缓存会累积从那时起收到的所有操作 (hdelhset)。

最后你会发出一个命令 (publishall?),然后 Redis 会按照接收到的线性顺序广播命令。

重要提示:我需要在 Node.js 中通过 Redis Sentinel 客户端(包 redis-sentinel-client)以编程方式执行设置操作。

【问题讨论】:

    标签: redis publish node-redis redis-sentinel


    【解决方案1】:

    您可以使用multiexec redis 命令将多个命令排队到redis。

    所以基本上你最终得到的是这样的:

    redis > multi
    redis > set foo bar
    redis > set alpha beta
    redis > exec
    

    你得到的是一个数组,按照你执行命令的顺序。因此,结果数组的索引 0 处的结果集将包含命令 set foo bar 的错误和/或结果。

    multi 命令的示例可以在这里找到:http://redis.io/commands/multi

    【讨论】:

    • 感谢您的回复。 multi exec 是否只能通过 Redis CLI 获得?我需要可以从 Redis 客户端(例如 Redis Sentinel 客户端)发送的命令。 (我已经修改了我原来的问题以反映这一点。)
    • 您提到的软件包的文档表明 sentinelClient 就像任何其他常规 redis 客户端一样。所以是的,我认为以上应该可以正常工作。我使用支持 multi 和 exec 命令的github.com/mranney/node_redis。检查您正在使用的库的支持。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-04
    • 2013-03-02
    • 1970-01-01
    相关资源
    最近更新 更多