Джанго, Redis: где поставить код подключения - PullRequest
0 голосов
/ 05 февраля 2019

Я должен запрашивать redis для каждого запроса в моем Django-приложении.Где я могу поместить процедуру установки / подключения (r = redis.Redis(host='localhost', port=6379)), чтобы я мог получить доступ и повторно использовать подключение без необходимости создания нового подключения в моих представлениях?

1 Ответ

0 голосов
/ 06 февраля 2019

Добавьте эту строку в файл настроек для создания соединения,

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient"
         },
        "KEY_PREFIX": "example"
    }
}

# Cache time to live is 15 minutes.
CACHE_TTL = 60 * 15

Кэш уровня просмотра, он будет кешировать ответ на запрос (данные)

from django.utils.decorators import method_decorator
from django.views.decorators.cache import cache_page

class TestApiView(generics.ListAPIView):
     serializer_class = TestSerializer

     @method_decorator(cache_page(60))
     def dispatch(self, *args, **kwargs):
          return super(TestApiView, self).dispatch(*args, **kwargs)

Кэш уровня шаблона,

from django.conf import settings
from django.core.cache.backends.base import DEFAULT_TIMEOUT
from django.shortcuts import render
from django.views.decorators.cache import cache_page
from .services import get_recipes_with_cache as get_recipes

CACHE_TTL = getattr(settings, 'CACHE_TTL', DEFAULT_TIMEOUT)


@cache_page(CACHE_TTL)
def recipes_view(request):
     return render(request, 'index.html', {
         'recipes': get_recipes()
     })

По любым вопросам обращайтесь по этой ссылке

  1. Как кэшировать вызовы API Django Rest Framework?
  2. https://github.com/realpython/django-redis-cache
  3. https://boostlog.io/@nixus89896/setup-caching-in-django-with-redis-5abb7d060814730093a2eebe
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...