博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python框架之Django(16)-接入Redis
阅读量:5129 次
发布时间:2019-06-13

本文共 1526 字,大约阅读时间需要 5 分钟。

准备

安装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 HttpResponsefrom django_redis import get_redis_connectiondef 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_pageurlpatterns = [    url(r'^foo/([0-9]{1,2})/$', cache_page(60 * 15)(my_view)),]
  • 方式三:模板中使用

    {
    # a. 引入TemplateTag #}{% load cache %}{
    # b. 使用缓存 #}{% cache 5000 缓存key %} 缓存内容{
    % endcache %}

转载于:https://www.cnblogs.com/zze46/p/10095225.html

你可能感兴趣的文章
IOS版本号被拒的经历
查看>>
JavaScript 本地对象、内置对象、宿主对象
查看>>
servlet的url-pattern匹配规则详细描述
查看>>
spring boot 整合 云之讯 demo
查看>>
《大型网站技术架构》1:概述
查看>>
(PatchGANs)Pecomputed Real-time Texture Synthesis With Markovian Generative Adversarial Networks
查看>>
Anjular的ng-repeat
查看>>
Gas Station,转化为求最大序列的解法,和更简单简单的Jump解法。——贪心、转化...
查看>>
MTK android 工程中如何修改照片详细信息中机型名
查看>>
Use delegation to write map/filter in Java
查看>>
html5用canvas对图片压缩
查看>>
opacity设定图片透明度
查看>>
Tizen - "泰泽"新移动操作系统
查看>>
go的net/http用法
查看>>
sql语句判断两个时间段是否有交集
查看>>
秒杀、抢购解决方案
查看>>
利用Mrjob实现Weighted Slope One算法
查看>>
jmeter旅程第二站:jmeter登录接口测试
查看>>
.Net Core 商城微服务项目系列(六):搭建自己的Nuget包服务器
查看>>
HTML
查看>>