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 相关文章推荐
python自动化测试之从命令行运行测试用例with verbosity
Sep 28 Python
详细解读Python的web.py框架下的application.py模块
May 02 Python
Python函数式编程指南(三):迭代器详解
Jun 24 Python
简单上手Python中装饰器的使用
Jul 12 Python
python3用PIL把图片转换为RGB图片的实例
Jul 04 Python
Python中拆分字符串的操作方法
Jul 23 Python
python yield和Generator函数用法详解
Feb 10 Python
python3将变量写入SQL语句的实现方式
Mar 02 Python
python numpy库np.percentile用法说明
Jun 08 Python
解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题
Jul 14 Python
一劳永逸彻底解决pip install慢的办法
May 24 Python
利用Python多线程实现图片下载器
Mar 25 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
IIS环境下快速安装、配置和调试PHP5.2.0
2006/12/17 PHP
php处理文件的小例子(解压缩,删除目录)
2013/02/03 PHP
php实现斐波那契数列的简单写法
2014/07/19 PHP
十个PHP高级应用技巧果断收藏
2015/09/25 PHP
PHP图形操作之Jpgraph学习笔记
2015/12/25 PHP
JQuery 学习笔记 选择器之一
2009/07/23 Javascript
function foo的原型与prototype属性解惑
2010/11/19 Javascript
jquery 列表双向选择器之改进版
2013/08/09 Javascript
JSON+HTML实现国家省市联动选择效果
2014/05/18 Javascript
JavaScript实现穷举排列(permutation)算法谜题解答
2014/12/29 Javascript
JavaScript事件类型中UI事件详解
2016/01/14 Javascript
iScroll.js 使用方法参考
2016/05/16 Javascript
深入理解javascript作用域第二篇之词法作用域和动态作用域
2016/07/24 Javascript
利用NPM淘宝的node.js镜像加速nvm
2017/03/27 Javascript
深入理解基于vue-cli的vuex配置
2017/07/24 Javascript
Angular4开发解决跨域问题详解
2017/08/28 Javascript
详解Node.js利用node-git-server快速搭建git服务器
2017/09/27 Javascript
vue升级之路之vue-router的使用教程
2018/08/14 Javascript
解决vue点击控制单个样式的问题
2018/09/05 Javascript
vue自定义正在加载动画的例子
2019/11/14 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
2020/12/14 Vue.js
利用Python的Django框架中的ORM建立查询API
2015/04/20 Python
详细解读Python的web.py框架下的application.py模块
2015/05/02 Python
python检查字符串是否是正确ISBN的方法
2015/07/11 Python
Python工程师面试题 与Python基础语法相关
2016/01/14 Python
python如何以表格形式打印输出的方法示例
2019/06/21 Python
Python Selenium破解滑块验证码最新版(GEETEST95%以上通过率)
2021/01/29 Python
基于注解实现 SpringBoot 接口防刷的方法
2021/03/02 Python
html5简介_动力节点Java学院整理
2017/07/07 HTML / CSS
Zavvi美国:英国娱乐之家
2017/03/19 全球购物
计算机应用职专应届生求职信
2013/11/12 职场文书
司法建议书范文
2014/05/13 职场文书
欢迎横幅标语
2014/06/17 职场文书
乌镇导游词
2015/02/02 职场文书
小学班长竞选稿
2015/11/20 职场文书
2016年安康杯竞赛活动总结
2016/04/05 职场文书