1

我们决定使用缓存(不决定具体的缓存),但今天知道我们需要通过连接到数据存储,使缓存数据失效或每 2 分钟刷新一次缓存数据,但我认为 2 分钟是不可行的,因为如果你每2分钟刷新一次缓存数据,那么最好连接到数据存储本身,所以任何人都可以建议什么是可行的时间间隔,我们可以设置使旧日期的缓存无效并刷新缓存数据存储中的数据?

注意:我们使用的是spring boot,postgres

4

1 回答 1

2

我认为您对缓存有点困惑。如果你缓存一个操作的结果(比如说X)两分钟,这意味着在不到两分钟的时间内重复操作的每个人都会得到X作为结果,两分钟后缓存失效,并重新存储下次请求操作时,如果没有人执行操作两个小时,它将在两个小时后刷新。

一个项目应该出现在缓存中的时间取决于很多因素,没有办法为所有情况计算一个绝对可行的值。

  • 缓存操作的执行率是多少?
  • 手术结果变化快吗?你在缓存每天都在变化的东西吗?每小时?
  • 获得缓存结果的人是否可以接受结果的旧版本,它可以有多旧?

我把这句话留给你(这是这个话题的必要条件):

"There are only two hard problems in Computer Science: 
cache invalidation and naming things."

-- Phil Karlton
于 2017-09-28T12:43:04.680 回答