我们决定使用缓存(不决定具体的缓存),但是今天知道我们需要通过连接到数据存储来使缓存数据失效或每2分钟刷新一次缓存数据,但我认为2分钟是不可行,因为如果你继续每 2 分钟刷新一次缓存数据,那么最好连接到数据存储本身,所以任何人都可以建议可行的时间间隔,我们可以设置为使旧日期的缓存无效并使用数据存储中的数据刷新缓存?
注意:我们使用的是spring boot,postgres
最佳答案
我认为您对缓存有点困惑。如果你缓存一个操作的结果(比如 X)两分钟,这意味着在不到两分钟内重复操作的每个人都会有 X 作为结果,两分钟后缓存失效,下一次请求操作时将再次存储,因此如果两个小时内没有人执行该操作,它将在两小时后刷新。
一个项目应该存在于缓存中的时间取决于很多因素,没有办法为所有情况计算出一个绝对可行的值。
- 缓存操作的执行率是多少?
- 操作结果变化快吗?你在缓存每天都在变化的东西吗?每小时?
- 获取缓存结果的人是否可以接受旧版本的结果,可以有多旧?
我留给你这句话(在这个话题上是必须的):
"There are only two hard problems in Computer Science:
cache invalidation and naming things."
-- Phil Karlton
关于postgresql - 使任何缓存失效(刷新)的合理时间间隔是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46469110/