【发布时间】:2022-11-23 10:43:21
【问题描述】:
我专注于缓存失效。因此,当客户端更新主要数据时,我计划驱逐缓存中的密钥,以便下次某个客户端读取数据时,他们需要将数据写回缓存。这种方法看起来很简单,但我预想可能会出现不一致的情况。
- 客户端 A 检查并没有看到任何缓存数据。
- 客户端A查询原始数据,得到版本A。
- 客户端 B 将主要数据更新为版本 B。
- 客户端 B 暴力破解缓存中的数据。
- 客户端 A 更新缓存到版本 A。
所以现在缓存包含不正确的版本 A。那么如何解决呢?
【问题讨论】: