zoukankan      html  css  js  c++  java
  • python框架之Django(16)-接入Redis

    准备

    安装Redis

    参考 Ubuntu 中 Redis 的安装与使用

    在python中使用Redis

    参考 python 中使用 Redis 。

    安装依赖包

    在 Django 中接入 Redis 需要安装如下依赖包:

    pip install django-redis

    使用

    配置

    在 settings.py 中加入配置:

    CACHES = {
        "default": {
            "BACKEND": "django_redis.cache.RedisCache",
            "LOCATION": "redis://192.168.154.129:6379",
            "OPTIONS": {
                "CLIENT_CLASS": "django_redis.client.DefaultClient",
                "CONNECTION_POOL_KWARGS": {"max_connections": 100},
                "PASSWORD": "1234",
            }
        }
    }

    获取Redis连接

    在视图中就可以这样获取 Redis 连接:

    from django.shortcuts import HttpResponse
    from django_redis import get_redis_connection
    
    
    def test(request):
        # 可通过参数选择连接 对应 settings.py 中 CACHES 节中的键名
        conn = get_redis_connection('default')
        # 之后就可以通过拿到的连接进行操作了
        return HttpResponse('')

    配置全站缓存

    使用中间件实现,会经过一系列的认证等操作,如果内容在缓存中存在,则使用 FetchFromCacheMiddleware 获取内容并返回给用户,当返回给用户之前,判断缓存中是否已经存在,如果不存在则 UpdateCacheMiddleware 会将内容保存至缓存,从而实现全站缓存。

    MIDDLEWARE = [
        'django.middleware.cache.UpdateCacheMiddleware',
        'django.middleware.cache.FetchFromCacheMiddleware',
    ]
    
    CACHE_MIDDLEWARE_ALIAS = ""
    CACHE_MIDDLEWARE_SECONDS = ""  # 超时时间
    CACHE_MIDDLEWARE_KEY_PREFIX = ""

    单独视图缓存

    • 方式一:装饰器

      from django.views.decorators.cache import cache_page
      
      @cache_page(60 * 15)
      def my_view(request):
          pass
    • 方式二:路由中配置

      from django.views.decorators.cache import cache_page
      
      urlpatterns = [
          url(r'^foo/([0-9]{1,2})/$', cache_page(60 * 15)(my_view)),
      ]
    • 方式三:模板中使用

      {# a. 引入TemplateTag #}
      {% load cache %}
      
      {# b. 使用缓存 #}
      {% cache 5000 缓存key %}
          缓存内容
      {% endcache %}
  • 相关阅读:
    C语言学习笔记<九>
    C语言学习笔记<六>
    C语言学习笔记<八>
    C语言学习代码〈五〉
    C语言学习笔记<七>
    红队笔记横向移动总结
    pikachu通关
    java线程监控
    项目空负载服务器使用cpu过高
    @NotBlank注解使用不生效的解决办法
  • 原文地址:https://www.cnblogs.com/zze46/p/10095225.html
Copyright © 2011-2022 走看看