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 %}
  • 相关阅读:
    DOM操作 append prependTo after before
    Vue(2)- v-model、局部组件和全局组件、父子组件传值、平行组件传值
    Vue(1)- es6的语法、vue的基本语法、vue应用示例,vue基础语法(转)
    Linux环境下虚拟环境virtualenv安装和使用(转)
    REST、DRF(View源码解读、APIView源码解读)
    超哥的 LINUX 入门大纲
    redis入门
    CRM总结
    如何搭建一个vue项目(完整步骤)
    DRF 视图
  • 原文地址:https://www.cnblogs.com/zze46/p/10095225.html
Copyright © 2011-2022 走看看