当将 SESSION_ENGINE 设置为 memcached 时,Django 网站会停止运行

当将 SESSION_ENGINE 设置为 memcached 时,Django 网站会停止运行

我已经使用 Pylibmc 绑定在 Django 中设置了 memcached:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache',
        'LOCATION': ['10.241.1.1:11211',
                    '10.241.1.2:11211',]
    }
}

我在服务器上用 django shell 进行了测试,memcached 池用于获取和设置 memcached 中的值。但是当我尝试设置

SESSION_ENGINE = "django.contrib.sessions.backends.cached_db"   OR
SESSION_ENGINE = "django.contrib.sessions.backends.cache"

我的网站仍然可以访问,但当用户按下登录按钮时会停止。所以我猜这一定是会话后端的问题。我的网站使用数据库作为会话后端运行良好。我在 apache 或网站错误日志中找不到任何相关错误,并且 /var/log/memcached.log 是空的。

参考: https://docs.djangoproject.com/en/1.1/topics/http/sessions/

答案1

我猜这是 Pylibmc 的一个 bug,尽管这个 bug 的原因还不清楚。奇怪的是,当我在 management/commands/ 中尝试同样的代码时,它工作正常。但我甚至无法在 views 中执行 cache.set(key, value),这会导致页面停止。

所以我切换回python-memcached,并且它可以工作了。

相关内容