Cache.get возвращает None при использовании Memcache

Хочу использовать Memcache для хранения и получения списка всех пользователей в сети. Я использую консоль для проверки работы кэша и memcache, но не получаю правильного вывода/

Например, когда я запускаю это

$ python manage.py shell
>>> from django.core.cache import cache
>>> cache.set("foo", "bar")
>>> cache.get("foo")

Я не получаю никакого вывода после выполнения cache.get("foo"). Я ожидаю получить вывод bar

Вот что у меня есть в файле settings.py:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
    }
}
USER_ONLINE_TIMEOUT = 300
USER_LASTSEEN_TIMEOUT = 60 * 60 * 24 * 7

мое промежуточное ПО:

import datetime
from django.core.cache import cache
from django.conf import settings

class ActiveUserMiddleware:

    def process_request(self, request):
        current_user = request.user
        if request.user.is_authenticated():
            now = datetime.datetime.now()
            cache.set('seen_%s' % (current_user.username), now, settings.USER_LASTSEEN_TIMEOUT)

и models.py:

from signup import settings
...
class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    ...
    def last_seen(self):
        return cache.get('seen_%s' % self.user.username)

    def online(self):
        if self.last_seen():
            now = datetime.datetime.now()
            if now > self.last_seen() + datetime.timedelta(
                seconds=settings.USER_ONLINE_TIMEOUT):
                return False
            else:
                return True
        else:
            return False
Вернуться на верх