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实现各种排序算法的代码示例总结
Dec 11 Python
python结合selenium获取XX省交通违章数据的实现思路及代码
Jun 26 Python
python逐行读写txt文件的实例讲解
Apr 03 Python
python方法生成txt标签文件的实例代码
May 10 Python
详解将Django部署到Centos7全攻略
Sep 26 Python
python中的数据结构比较
May 13 Python
详解Python3之数据指纹MD5校验与对比
Jun 11 Python
一篇文章搞懂python的转义字符及用法
Sep 03 Python
Pycharm中如何关掉python console
Oct 27 Python
详解Python魔法方法之描述符类
May 26 Python
如何使用Python提取Chrome浏览器保存的密码
Jun 09 Python
Python中的变量与常量
Nov 11 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 header示例代码(推荐)
2010/09/08 PHP
PHP获取文件行数的方法
2015/06/10 PHP
PHP面向对象程序设计方法实例详解
2016/12/24 PHP
php新建文件的方法实例
2019/09/26 PHP
Laravel服务容器绑定的几种方法总结
2020/06/14 PHP
Prototype最新版(1.5 rc2)使用指南(1)
2007/01/10 Javascript
jQuery提交表单ajax查询实例代码
2012/10/07 Javascript
js 获取(接收)地址栏参数值的方法
2013/04/01 Javascript
Javascript alert消息换行的方法
2013/08/07 Javascript
js 动态给元素添加、移除事件的实现方法
2016/07/19 Javascript
快速解决js中window.location.href不工作的问题
2016/11/02 Javascript
vue 注册组件的使用详解
2018/05/05 Javascript
Vue动态获取width的方法
2018/08/22 Javascript
微信小程序前端promise封装代码实例
2019/08/24 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
2019/11/13 Javascript
python超简单解决约瑟夫环问题
2015/05/12 Python
Python单例模式的两种实现方法
2017/08/14 Python
django模板语法学习之include示例详解
2017/12/17 Python
使用Python进行AES加密和解密的示例代码
2018/02/02 Python
解决Tensorflow安装成功,但在导入时报错的问题
2018/06/13 Python
Python实现识别图片内容的方法分析
2018/07/11 Python
TensorFlow基本的常量、变量和运算操作详解
2020/02/03 Python
Python中remove漏删和索引越界问题的解决
2020/03/18 Python
python 引用传递和值传递详解(实参,形参)
2020/06/05 Python
如何用python处理excel表格
2020/06/09 Python
Django DRF认证组件流程实现原理详解
2020/08/17 Python
python如何实现递归转非递归
2021/02/25 Python
使用canvas绘制超炫时钟
2014/12/17 HTML / CSS
百思买加拿大:Best Buy Canada
2018/03/20 全球购物
Groupon荷兰官方网站:高达70%的折扣
2019/11/01 全球购物
品牌宣传方案
2014/03/21 职场文书
运动会演讲稿100字
2014/08/25 职场文书
大学生见习报告范文
2014/11/03 职场文书
酒店销售经理岗位职责
2015/04/02 职场文书
小学生红领巾广播稿
2015/08/19 职场文书
PyQt5爬取12306车票信息程序的实现
2021/05/14 Python