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

数据结构上的redis操作是线程安全的吗

闻人花蜂
2023-03-14

Redis如何处理多个线程(来自不同的客户端)更新Redis中的相同数据结构?对于这样的用例,推荐的最佳实践是什么?

共有1个答案

阎渝
2023-03-14

如果你读了小雷迪斯的书,在某一点上,这句话就会出现。

“你可能不知道,但Redis实际上是单线程的,这就是保证每个命令都是原子的方式。当一个命令在执行时,其他命令都不会运行。”

欲了解更多信息,请访问http://openmymind.net/2012/1/23/the-little-redis-book/

 类似资料:
  • 问题内容: Redis如何处理(来自不同客户端的)多个线程来更新Redis中的相同数据结构?对于这种用例,建议的最佳实践是什么? 问题答案: 如果您在某个时候读了《小红衣人》一书,这句话就来了。 “您可能不知道,但是 Redis实际上是单线程的 ,这确保了每个命令都是原子的。 在执行一个命令时,不会再运行其他命令 。” 看看http://openmymind.net/2012/1/23/The-L

  • 问题内容: 在中,此变量被声明为是我的问题,在某些调用之后检查值还是在多线程代码中使用perror()是安全的。这是线程安全变量吗?如果没有,那还有什么选择呢? 我在x86体系结构上将Linux与gcc一起使用。 问题答案: 是的,它是线程安全的。在Linux上,全局errno变量是特定于线程的。POSIX要求errno必须是线程安全的。 参见http://www.unix.org/whitepa

  • 问题内容: 我们在项目中使用了Drools kieSessions。许多线程可以创建新的kieSession。有时在创建会话时线程可能会挂起。因此,问题是: 首先 是kieContainer.newKieSession线程安全操作吗? 上吊的原因可能是肮脏的文字或阅读的kie会话集之类的东西吗? 问题答案: 当我在实践中检查 不是线程安全的操作。

  • 问题内容: 在Java中:线程安全吗,即返回的迭代器是在任何时候反映列表的当前状态,还是仅在创建列表时反映列表的状态? 问题答案: List.iterator()的行为未定义或与其他List实现保持一致。 对于ArrayList,LinkedList,如果在迭代列表时对其进行了修改,则可以获得ConcurrentModificationException。(这不能保证)避免此问题的方法是使用syn

  • 问题内容: 我试图在一个明确的列表中回答两个问题: Redis的底层数据结构是什么? 每种类型的主要优点/缺点/用例是什么? 因此,我读过Redis列表实际上是用链接列表实现的。但是对于其他类型,我无法提取任何信息。同样,如果有人偶然发现了这个问题,而又对修改或访问不同数据结构的优缺点没有一个高层次的总结,那么他们将有完整的清单,列出 何时可以最佳地使用特定类型 进行引用。 具体来说,我希望概述所

  • 我只是一个非开发人员,所以我的问题可能非常简单! 我只是在测试Java多线程的东西,这不是真正的代码。我想知道如何在 Java 中同时更新两个成员变量,以防我们希望它们都同步。举个例子: 在这种情况下(当然,想象一下多线程),我希望能够保证对< code>items和< code>itemToStatus的任何读取总是返回相同的结果。 因此,如果代码在< code>itemToStatus.put