gpt4 book ai didi

multithreading - get_multi/set_multi 原子?

转载 作者:行者123 更新时间:2023-12-02 00:29:53 27 4
gpt4 key购买 nike

official FAQ我阅读的 Memcached:

“发送到 memcached 的所有单独命令都是绝对原子的。”

然而,当涉及到 get_multiset_multi 时,我仍然不清楚。我想知道 get_multiset_multi 在以下意义上是否是原子的:

  • set_multi 执行的所有写入操作将以原子方式一起执行。
  • get_multi 执行的所有读取操作将以原子方式一起执行。

例如这些情况应该是不可能的:

1)

  • 缓存的初始内容是 {'a': 0, 'b': 0}
  • 机器 A 调用 set_multi({'a': 1, 'b': 1})
  • 机器 B 调用 get_multi(['a', 'b']) 并接收 {'a': 1, 'b': 0}

2)

  • 缓存的初始内容是 {'a': 0, 'b': 0}
  • 机器 A 调用 `set({'a': 1})
  • 机器 A 调用 `set({'b': 2})
  • 机器 B 调用 get_multi(['a', 'b']) 并接收 {'a': 0, 'b': 2}

这个问题对我的设计来说太重要了,我想我最好问问确认。

最佳答案

As I read this section , get_multi 发出并行运行的多个请求,其想法是对于大型请求,get_multi 允许减少获取所有结果的总时间。我没有看到任何保证或提及一起完成的独立请求是集体原子的。相同的规则可能适用于 set_multi(即单个请求是原子的,但它们的集合不是)。

似乎也没有提及交易。

关于multithreading - get_multi/set_multi 原子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7456249/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com