redis之django-redis的简单缓存使用


Posted in Python onJune 07, 2018

本文介绍了redis之django-redis的简单缓存使用,分享给大家,具体如下:

自定义连接池

这种方式跟普通py文件操作redis一样,代码如下:

views.py

import redis
from django.shortcuts import render,HttpResponse
from utils.redis_pool import POOL

def index(request):
  conn = redis.Redis(connection_pool=POOL)
  conn.hset('kkk','age',18)

  return HttpResponse('设置成功')
def order(request):
  conn = redis.Redis(connection_pool=POOL)
  conn.hget('kkk','age')

  return HttpResponse('获取成功')

通过第三方组件操作redis

安装

pip3 install django-redis

配置

settings.py

# redis配置
CACHES = {
  "default": {
    "BACKEND": "django_redis.cache.RedisCache",
    "LOCATION": "redis://127.0.0.1:6379",
    "OPTIONS": {
      "CLIENT_CLASS": "django_redis.client.DefaultClient",
      "CONNECTION_POOL_KWARGS": {"max_connections": 100}
      # "PASSWORD": "密码",
    }
  }
}

使用

views.py

import redis
from django.shortcuts import render,HttpResponse
from django_redis import get_redis_connection


def index(request):
  conn = get_redis_connection("default")
  return HttpResponse('设置成功')
def order(request):
  conn = get_redis_connection("default")
  return HttpResponse('获取成功')

全站缓存

使用中间件,经过一系列的认证等操作,如果内容在缓存中存在,则使用FetchFromCacheMiddleware获取内容并返回给用户,

当返回给用户之前,判断缓存中是否已经存在,如果不存在则UpdateCacheMiddleware会将缓存保存至缓存,从而实现全站缓存

MIDDLEWARE = [
    'django.middleware.cache.UpdateCacheMiddleware',
    # 其他中间件...
    'django.middleware.cache.FetchFromCacheMiddleware',
  ]

一个放在最上面,一个放在最下面

views.py

from django.shortcuts import render,HttpResponse
import time


def index(request):
  ctime = str(time.time())
  return HttpResponse(ctime)

def order(request):
  ctime = str(time.time())
  return HttpResponse(ctime)

配置了全站缓存,在不同的时间(一定范围内),上面两个视图返回的时间是一样的,都是缓存时的时间

单独视图缓存

方式一:通过装饰器

from django.views.decorators.cache import cache_page

    @cache_page(60 * 15)
    def my_view(request):
      ...

方式二:通过url

from django.views.decorators.cache import cache_page

    urlpatterns = [
      url(r'^foo/([0-9]{1,2})/$', cache_page(60 * 15)(my_view)),
    ]

局部页面缓存

1. 引入TemplateTag

{% load cache %}

2. 使用缓存

{% cache 5000 缓存的key %}
    缓存内容
{% endcache %}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Linux下编译安装MySQL-Python教程
Feb 02 Python
利用Python批量提取Win10锁屏壁纸实战教程
Mar 27 Python
Python列表list排列组合操作示例
Dec 18 Python
python在openstreetmap地图上绘制路线图的实现
Jul 11 Python
使用Pandas对数据进行筛选和排序的实现
Jul 29 Python
python安装gdal的两种方法
Oct 29 Python
python装饰器代替set get方法实例
Dec 19 Python
python能做哪方面的工作
Jun 15 Python
Anaconda的安装与虚拟环境建立
Nov 18 Python
详解Scrapy Redis入门实战
Nov 18 Python
Python修改DBF文件指定列
Dec 19 Python
使用Python的开发框架Brownie部署以太坊智能合约
May 28 Python
PHP实现发送和接收JSON请求
Jun 07 #Python
使用python画个小猪佩奇的示例代码
Jun 06 #Python
python re模块的高级用法详解
Jun 06 #Python
Python实现的爬取网易动态评论操作示例
Jun 06 #Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
Jun 06 #Python
利用python如何处理百万条数据(适用java新手)
Jun 06 #Python
Python3实现的Mysql数据库操作封装类
Jun 06 #Python
You might like
地摊中国 - 珍藏老照片
2020/08/18 杂记
php模板函数 正则实现代码
2012/10/15 PHP
php array_reverse 以相反的顺序返回数组实例代码
2017/04/11 PHP
简单实用的PHP文本缓存类实例
2019/03/22 PHP
Laravel 自带的Auth验证登录方法
2019/09/30 PHP
js跟随滚动条滚动浮动代码
2009/12/31 Javascript
Javascript 类、命名空间、代码组织代码
2011/07/31 Javascript
jquery移除button的inline onclick事件(已测试及兼容浏览器)
2013/01/25 Javascript
Javascript中的作用域和上下文深入理解
2015/07/03 Javascript
js时钟翻牌效果实现代码分享
2020/07/31 Javascript
将JavaScript的jQuery库中表单转化为JSON对象的方法
2015/11/17 Javascript
使用 Vue 绑定单个或多个 Class 名的实例代码
2018/01/08 Javascript
9102年webpack4搭建vue项目的方法步骤
2019/02/20 Javascript
Python中用psycopg2模块操作PostgreSQL方法
2017/11/28 Python
python实现决策树、随机森林的简单原理
2018/03/26 Python
详解Django+Uwsgi+Nginx的生产环境部署
2018/06/25 Python
python如何使用socketserver模块实现并发聊天
2019/12/14 Python
python微信公众号开发简单流程实现
2020/03/09 Python
使用卷积神经网络(CNN)做人脸识别的示例代码
2020/03/27 Python
python如何判断IP地址合法性
2020/04/05 Python
idea2020手动安装python插件的实现方法
2020/07/17 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
CSS3 border-image详解、应用及jQuery插件
2011/08/29 HTML / CSS
html+css3实现的登录界面
2020/12/09 HTML / CSS
canvas粒子动画背景的实现示例
2018/09/03 HTML / CSS
MCM英国官网:奢侈皮具制品
2017/04/18 全球购物
易程科技软件测试笔试
2013/03/24 面试题
2014领导班子四风问题对照检查材料思想汇报
2014/09/21 职场文书
贵阳市党的群众路线教育实践活动党(工)委领导班子整改方案
2014/10/26 职场文书
党员争先创优承诺书
2015/01/20 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
2015年世界卫生日活动总结
2015/02/09 职场文书
房地产公司工程部经理岗位职责
2015/04/09 职场文书
如何把新闻人物写得立体、鲜活?
2019/08/14 职场文书
PHP 技巧 * SVG 保存为图片(分享图生成)
2021/04/02 PHP
Oracle 区块链表创建过程详解
2021/05/15 Oracle