【问题标题】:Using Redis clusters and transactions使用 Redis 集群和事务
【发布时间】:2019-01-01 23:25:09
【问题描述】:

使用 Redis 集群时出现以下错误:

Cannot use 'MULTI' with redis-cluster.

只需以下调用:

Redis::multi();

有没有办法在不使用事务的情况下确保跨集群的数据完整性,因为这是不可能的

【问题讨论】:

    标签: php laravel redis lumen predis


    【解决方案1】:

    Redis 不支持事务,如果键位于不同的插槽/节点上。

    如果您必须将数据存储在集群中,则必须确保与交易相关的所有密钥都存储在单个插槽中。您可以使用hash tag 来执行此操作。

    然后你可以把持有slot的节点作为一个单一的Redis实例,在那个节点上运行事务。

    【讨论】:

    • Redis 集群仍然如此吗? Redis 是否仍然不支持涉及多个节点上的键的事务?
    • 据我了解,Redis 只允许涉及属于同一个哈希槽的多个键的事务。
    • @Siddhant 是的,Redis 仅允许涉及属于同一哈希槽的键的事务仍然是正确的。如果密钥位于多个插槽上,则无法在这些密钥上执行交易。
    猜你喜欢
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 2017-04-24
    • 2019-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多