我正在尝试将Memcached用作Django项目的主要缓存。但是,当我在缓存中输入一些数据以确保其正常工作时,日志文件中没有任何内容记录。
这是我的Django设置:
# settings.py
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '127.0.0.1:11211',
}
}
CACHE_MIDDLEWARE_ALIAS = 'default'
CACHE_MIDDLEWARE_SECONDS = 300
CACHE_MIDDLEWARE_KEY_PREFIX = ''
MIDDLEWARE_CLASSES = (
'django.middleware.cache.UpdateCacheMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.middleware.cache.FetchFromCacheMiddleware',
)
这是我的Memcached配置:
# /etc/memcached.conf
-d
logfile /var/log/memcached.log
-vv
-m 64
-p 11211
-u memcache
-l 127.0.0.1
我创建了日志文件/var/log/memcached.log,并将其赋予所有者“ memcache”,组“ adm”和权限0644。
我已经确认memcached正在运行并且正在侦听其端口:
$ netstat -tupan | grep 11211
tcp 0 0 127.0.0.1:11211 0.0.0.0:* LISTEN 20655/memcached
tcp 0 0 127.0.0.1:11211 127.0.0.1:53822 ESTABLISHED 20655/memcached
tcp 0 0 127.0.0.1:53822 127.0.0.1:11211 ESTABLISHED 22403/python
要使用Django测试Memcached,我运行了以下命令:
python manage.py shell
from django.core.cache import cache
cache.set('my_key', 'hello world!', 30)
cache.get('my_key') # Returns 'hello world!'
但是,运行此命令后,memcached日志文件应包含我刚刚运行的get和set时仍然为空。
我想念什么?
环境:
作业系统:Debian 9.9
Django:1.11.21
记忆快取:1.4.33