【问题标题】:Sessions on Memcached in Django - no items in MemcachedDjango 中 Memcached 上的会话 - Memcached 中没有项目
【发布时间】:2014-02-08 22:14:48
【问题描述】:

我正在使用 memcached 在 Django 中设置会话,登录后,缓存中没有出现任何项目。

我可以使用telnet localhost 11211 连接到我的memcached 实例,stats 表示进程正在运行。我的缓存设置如下:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache',
        'LOCATION': '127.0.0.1:11211' # can also be a list of locations
    }
}
SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'

我确实为缓存设置了数据库。会话显示在数据库中。 (当只使用backends.cache 时,数据库或缓存中不会显示任何内容。)

这是预期的行为吗?我是否必须在会话密钥中存储一些特殊的东西才能注册?

【问题讨论】:

  • Do I have to store something in the session key for it to register?
  • 我在会话中存储东西。我的意思是特别的,但我应该这么说。已编辑。

标签: django memcached django-sessions


【解决方案1】:

我正在使用 1.2 并且正在阅读 1.3 的文档。

在 1.2 中,缓存看起来像这样:CACHE_BACKEND = "memcached://127.0.0.1:11211/" 而不是缓存字典。

【讨论】:

    【解决方案2】:

    您还需要将两个中间件类添加到您的 MIDDLEWARE_CLASSES 设置中,如下所述: https://docs.djangoproject.com/en/dev/topics/cache/?from=olddocs#the-per-site-cache

    MIDDLEWARE_CLASSES = ( 'django.middleware.cache.UpdateCacheMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.cache.FetchFromCacheMiddleware', )

    【讨论】:

      【解决方案3】:

      如下使用django.core.cache.backends.locmem.LocMemCache

      CACHES={
              "default":{
                          "BACKEND":"django.core.cache.backends.memcached.MemcachedCache",
                          "LOCATION": "127.0.0.1:11211"
                          },
      
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-09-09
        • 1970-01-01
        • 2014-12-23
        • 1970-01-01
        • 2016-09-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多