[memcache键的incr操作每小时都会重置

问题描述 投票:0回答:1

我正在从App Engine API的gae中使用Memcache,它的文档没有提供任何设置到期时间的信息,但它每隔一小时就会重置一次。https://cloud.google.com/appengine/docs/standard/python/refdocs/google.appengine.api.memcache.html#google.appengine.api.memcache.Client.incr

from google.appengine.api import memcache
def count(key):
    newVal = memcache.incr(key,delta=1,initial_value=1)
    return newVal

我希望该值保持2天,我如何才能达到相同的效果?

python-2.7 google-app-engine caching memcached
1个回答
0
投票

Memcached是内存中的缓存。您永远无法确定缓存中的对象将保留在缓存中。

有许多原因可能导致这种情况发生。

  • 您的一个缓存已满,有人试图插入一个对象,memcache将驱逐出使用最少的对象
  • [memcache中有一个平板的概念,其中大小相似的对象保存在一个平板中。可能是您的缓存未满,但您的平板已满,并且正在逐出该对象。您可以阅读有关它的更多信息here
  • 另一个原因可能是,在较新版本的Memcache(在1.5.0之后,我认为,当长时间不使用板且新板需要空间时,Memcache已开始逐出板。

最重要的是,您不应该依赖memcached来存储数据。最好将数据源作为某个数据库,并仅将memcached用作高速缓存。

希望这会有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.