gpt4 book ai didi

mysql - 在 Memcached 中缓存 MySQL 查询结果并确保更新的一致性

转载 作者:行者123 更新时间:2023-11-30 22:31:18 24 4
gpt4 key购买 nike

在 Memcached 上保存 MySQL 查询的结果时,我在考虑一致性问题。更新时会发生什么?

更新时,数据会从 Memcached 中删除。

但是......考虑以下场景,其中以下操作按此顺序发生:

  1. 客户端 A 向 API 服务器发送更新请求。
  2. 客户端 B 向 API 服务器发送 GET 请求。
  3. 两个请求并行执行。
  4. 处理客户端 B 请求的脚本从数据库中获取数据。
  5. 处理客户端 A 请求更新数据库数据的脚本。
  6. 处理客户端 A 请求的脚本向 memcached 发送删除请求。
  7. 处理客户端 B 请求的脚本向 memcached 发送插入请求。

在这种情况下,memcached 会填充旧数据。

这种场景下如何保证一致性?

最佳答案

将缓存处理集中在包装数据库访问的任何代码中。脚本 A 和 B,除非通过这一层,否则永远不会与数据库对话。

如果您不想经历所有这些麻烦(取决于您使用的堆栈,有针对此问题的现有解决方案),则将您的缓存限制在缓存不一致不会造成任何危害的情况下。

关于mysql - 在 Memcached 中缓存 MySQL 查询结果并确保更新的一致性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33837382/

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