Memcache配置到期时间

时间:2012-09-11 12:50:57

标签: memcached

假设我有30秒缓存的内容,生成缓存内容的db请求需要2秒,而我每秒收到100个请求,当缓存需要刷新时会发生什么?

我怀疑我的数据库被击中了200次。我想要发生的是让第一个通过,但然后告诉其他人回到缓存,所以基本上30秒后,第一次尝试缓存在这里没有说什么但是然后剩下的得到给定的东西,直到通过更新它的那个。

我是否必须在应用程序级别执行此操作,或者可以配置memcache来执行此操作?

1 个答案:

答案 0 :(得分:1)

您需要在应用程序中构建此逻辑。在memcached中找不到该项时,只需从数据库中检索它,然后在缓存中创建一个新项。项目到期后,您需要从数据库中重新缓存该项目。

[ get item from cache ] ----- yes
   |                           |
  no                        [ return item ]
   |
   |
[ get item from database ] -- yes
   |                           |
  no                        [ store item in cache ]
   |                           |
[ return not found ]        [ return item ]
相关问题