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持久性管理pickle模块详细介绍
Feb 18 Python
Python的多态性实例分析
Jul 07 Python
在Django框架中设置语言偏好的教程
Jul 27 Python
如何使用七牛Python SDK写一个同步脚本及使用教程
Aug 23 Python
python正则表达式的使用
Jun 12 Python
用python编写第一个IDA插件的实例
May 29 Python
一行python实现树形结构的方法
Aug 09 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
Sep 06 Python
Alpine安装Python3依赖出现的问题及解决方法
Dec 25 Python
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 Python
pytorch 6 batch_train 批训练操作
May 28 Python
python实现简单聊天功能
Jul 07 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
php遍历目录与文件夹的多种方法详解
2013/11/14 PHP
php实现scws中文分词搜索的方法
2015/12/25 PHP
Yii2框架数据库简单的增删改查语法小结
2016/08/31 PHP
PHP实现简易blog的制作
2016/10/24 PHP
php连接微软MSSQL(sql server)完全攻略
2016/11/27 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
HTTP状态代码以及定义(解释)
2007/02/02 Javascript
围观tangram js库
2010/12/28 Javascript
jquery ajax提交整个表单元素的快捷办法
2013/03/27 Javascript
Extjs4 类的定义和扩展实例
2013/06/28 Javascript
Jquery如何实现点击时高亮显示代码
2014/01/22 Javascript
点击A元素触发B元素的事件在IE8下会识别成A元素
2014/09/04 Javascript
详细解读AngularJS中的表单验证编程
2015/06/19 Javascript
javascript弹性运动效果简单实现方法
2016/01/08 Javascript
基于Jquery和html5实现炫酷的3D焦点图动画
2016/03/02 Javascript
jQuery grep()方法详解及实例代码
2016/10/30 Javascript
vue-cli + sass 的正确打开方式图文详解
2017/10/27 Javascript
JS实现移动端整屏滑动的实例代码
2017/11/10 Javascript
浅谈vue后台管理系统权限控制思考与实践
2018/12/19 Javascript
浅谈Vue页面级缓存解决方案feb-alive(上)
2019/04/14 Javascript
基于JS开发微信网页录音功能的实例代码
2019/04/30 Javascript
JS实现提示效果弹出及延迟隐藏的功能
2019/08/26 Javascript
原生JS实现拖拽功能
2020/12/16 Javascript
flask中过滤器的使用详解
2018/08/01 Python
python 中pyqt5 树节点点击实现多窗口切换问题
2019/07/04 Python
Python语言异常处理测试过程解析
2020/01/08 Python
python3.x中安装web.py步骤方法
2020/06/23 Python
python中tkinter窗口位置\坐标\大小等实现示例
2020/07/09 Python
Django生成数据库及添加用户报错解决方案
2020/10/09 Python
英国空调、除湿机和通风设备排名第一:Air Con Centre
2019/02/25 全球购物
乌克兰电子产品和家用电器购物网站:TOUCH
2019/08/09 全球购物
水利公司纪检监察自我鉴定
2014/02/25 职场文书
民族学专业求职信
2014/07/28 职场文书
工作作风承诺书
2014/08/30 职场文书
无故旷工检讨书
2015/08/15 职场文书
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
2021/08/30 Python