【问题标题】:getting Redis list item index获取 Redis 列表项索引
【发布时间】:2012-06-12 05:46:40
【问题描述】:

我有一个列表,我正在使用 RPUSH 添加元素,它返回列表的更新长度。我的问题是,使用返回的长度 - 1 作为新插入项的索引是否可靠?

可靠的意思是,如果我有多个到 Redis 的连接执行相同的操作,是否保证不会有任何重叠,例如在两个同时发生的 RPUSH 之后实际返回的返回长度,或者 Redis 的列表操作是原子的默认还是我需要交易?

【问题讨论】:

    标签: queue redis


    【解决方案1】:

    考虑到 redis 命令的原子性,您可以 100% 确定每个 RPUSH 之后都会有相应的整数回复,因此可以安全地假设您的元素的索引为 (integer_reply - 1)。我已经回答了一个与此相关的问题here

    【讨论】:

    • 嘿,谢谢,但这是否意味着我不需要为此进行交易?
    • 啊,是的,我刚刚在 python 中编写了一个测试,实际上 integer_reply - 1 是可靠的,但前提是你有一个连接。每当我的测试开始产生多个并行连接时,redis 就会开始处理那些连接上首先推送的人,但是如果我添加事务,那么一切都会按预期工作。这是我的测试代码的链接gist.github.com/2915849
    猜你喜欢
    • 2013-03-05
    • 1970-01-01
    • 2011-01-06
    • 2019-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多