Я пытаюсь использовать Memcache на Django и Heroku. Я выполнил шаги в devokter Heroku для настройки Memcache с помощью Django (https://devcenter.heroku.com/articles/django-memcache).. Я только хочу сделать очень простой .set (), чтобы добавить переменную в кеш. Я установил переменную кеша в представлениии у меня есть оператор print только для проверки его работоспособности, и я думаю, что ДОЛЖНО произойти, когда это представление вызывается, переменная кэша установлена. Однако я вижу, что когда я запускаю свой сервер разработки, переменная устанавливается при запуске,вместо того, когда вызывается представление.
Вот настройки кеша в настройках:
def get_cache():
try:
servers = os.environ['MEMCACHIER_SERVERS']
username = os.environ['MEMCACHIER_USERNAME']
password = os.environ['MEMCACHIER_PASSWORD']
return {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache',
# TIMEOUT is not the connection timeout! It's the default expiration timeout that should be applied to keys! Setting it to `None` disables expiration.
'TIMEOUT': None,
'LOCATION': servers,
'OPTIONS': {
'binary': True,
'username': username,
'password': password,
'behaviors': {
# Enable faster IO
'no_block': True,
'tcp_nodelay': True,
# Keep connection alive
'tcp_keepalive': True,
# Timeout settings
'connect_timeout': 2000, # ms
'send_timeout': 750 * 1000, # us
'receive_timeout': 750 * 1000, # us
'_poll_timeout': 2000, # ms
# Better failover
'ketama': True,
'remove_failed': 1,
'retry_timeout': 2,
'dead_timeout': 30,
}
}
}
}
except:
return {
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'
}
}
CACHES = get_cache()
и вызов, который устанавливает переменную кеша:
from django.core.cache import cache
.
.
class PasswordResetView(auth_views.PasswordResetView):
cache.set('from_admin', False)
print(cache.get('from_admin'))
ЕстьЯ где-то ошибся в настройке? Так должен работать Memcache на Django?