Как заменить MemcachedCache на PyMemcacheCache в Django?
Я запускаю свой сайт на Django 3.2. Я прочитал в Django's cache framework, что MemcachedCache
и python-memcached
являются устаревшими. Я установил pymemcache==3.5.0
на моем staging-сервере и перешел на CACHE_URL=pymemcache://127.0.0.1:11211
в env.ini
. Но если я удалю python-memcached
с помощью pip, я получу сообщение об ошибке, которое указывает на то, что MemcachedCache
все еще используется моим кодом, и он не работает на import memcache
.
Мой код использует следующие импорты:
from django.core.cache import cache
from django.core.cache.backends.base import DEFAULT_TIMEOUT
Как заменить MemcachedCache
на PyMemcacheCache
так, чтобы MemcachedCache
не использовался в коде?
Я использую django-environ==0.8.1
и CACHES
определено в моих настройках:
CACHES = {
'default': env.cache()
}
env
определяется как environ.Env()
.
My Traceback:
Мой репозиторий: https://github.com/speedy-net/speedy-net
Обновление: Я проверил сообщение электронной почты, которое я получил для отладки, и я вижу, что CACHES
в настройках равно {'default': {'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': '127.0.0.1:11211'}}
.
Я не знаю почему, но способ, которым я перезапустил свой сервер во время развертывания, не обновляет env.ini
, и сервер запоминает старые настройки. Если я перезапускаю сервер с sudo reboot
, с теми же настройками, то CACHES
становится равным {'default': {'BACKEND': 'django.core.cache.backends.memcached.PyMemcacheCache', 'LOCATION': '127.0.0.1:11211'}}
и сайт работает правильно. И я подтвердил, что если я помещу фиктивные значения в env.ini
, то сайт вообще не работает. Но только если я перезапускаю сервер с sudo reboot
.