比如使用Redis缓存了listUser的结果集,然后插入/更新/删除了数据,那怎么保证listUser的结果是最新的呢?如果说通过在插入/更新/删除操作后清空缓存,那在插入/更新/删除的操作很频繁时要如何解决呢?频繁的删缓存,那缓存的意义也就不存在了。这个问题要如何解决呢?
比如使用Redis缓存了listUser的结果集,然后插入/更新/删除了数据,那怎么保证listUser的结果是最新的呢?如果说通过在插入/更新/删除操作后清空缓存,那在插入/更新/删除的操作很频繁时要如何解决呢?频繁的删缓存,那缓存的意义也就不存在了。这个问题要如何解决呢?
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.4k 阅读
3 回答1.7k 阅读✓ 已解决
这是必然的,没有解法。如果实在太过频繁,那就没有缓存的必要。
但是,理论上只要访问量大于清理的时间间隔,还是有必要的。
比如这个数据平均 1 秒清理一次,而假设高峰期平均每秒有访问 20 次的访问量,那这个缓存就有意义。如果每秒只有 5 次以内,那可能就没那么重要了。
另外还要根据业务进行综合评估,如果缓存的内容很大,清理却很频繁,那也要适当考虑。假设这个查询很复杂,耗时很长,也是有一定必要的。