在Django的Memcached会话中,当我设置SESSION_COOKIE_AGE = 0时,缓存过期时间总是300



My Django Settings.py如下:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache',
        #'LOCATION': os.environ['MEMCACHED']
        'LOCATION': "127.0.0.1",
         #"BINARY" : True,
    },
}
SESSION_SAVE_EVERY_REQUEST = True
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
SESSION_COOKIE_AGE = 0 

我将会话存储在memcached上。但是缓存过期时间总是300s!!

作为django文档,他们说SESSION_COOKIE_AGE = 0意味着永远不会超时,但它没有用于缓存超时?

所以,现在我想让会话缓存永远不会超时,直到浏览器关闭?

不要告诉我只设置SESSION_EXPIRE_AT_BROWSER_CLOSE,因为我将会话存储在memcached中,缓存也有过期时间。我希望缓存永远不过期

谢谢。

我找到原因了!

Settings.py中有CACHES .当使用memcached存储会话时,设置SESSION_COOKIE_AGE=0。Django会为每个缓存使用默认的超时时间(300秒)。

如果您想设置缓存不超时,您需要在CACHES中添加TIMEOUT=0

编辑:我从2006年找到了这个帖子https://groups.google.com/forum/#!主题/django-users/oLZTAAA6wVE试着把这个设置放到应用的settings.py中。

我认为你可以把过期时间放在很远的地方(比如2050年),它应该会起作用。p.

相关内容

  • 没有找到相关文章

最新更新