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内置数据类型详解
Aug 18 Python
python简单判断序列是否为空的方法
Jun 30 Python
Python实现带百分比的进度条
Jun 28 Python
Python引用类型和值类型的区别与使用解析
Oct 17 Python
Python实现图片滑动式验证识别方法
Nov 09 Python
python取代netcat过程分析
Feb 10 Python
python中实现字符串翻转的方法
Jul 11 Python
pygame游戏之旅 如何制作游戏障碍
Nov 20 Python
pygame游戏之旅 添加游戏介绍
Nov 20 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
Dec 14 Python
flask框架配置mysql数据库操作详解
Nov 29 Python
关于django python manage.py startapp 应用名出错异常原因解析
Dec 15 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
ajax缓存问题解决途径
2006/12/06 PHP
PHP截取汉字乱码问题解决方法mb_substr函数的应用
2008/03/30 PHP
php whois查询API制作方法
2011/06/23 PHP
PHP设计模式之解释器模式的深入解析
2013/06/13 PHP
php去除换行(回车换行)的三种方法
2014/03/26 PHP
PHP使用数组依次替换字符串中匹配项
2016/01/08 PHP
php实现购物车功能(以大苹果购物网为例)
2017/03/09 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
2019/01/16 PHP
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
什么是MEAN?JavaScript编程中的MEAN是什么意思?
2014/12/18 Javascript
微信JS接口汇总及使用详解
2015/01/09 Javascript
jQuery简单实现禁用右键菜单
2015/03/10 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
2016/11/09 Javascript
基于JavaScript实现右键菜单和拖拽功能
2016/11/28 Javascript
JavaScript实现的select点菜功能示例
2017/01/16 Javascript
JS html时钟制作代码分享
2017/03/03 Javascript
基于JavaScript实现多级菜单效果
2017/07/25 Javascript
javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】
2017/09/28 Javascript
微信小程序自定义音乐进度条的实例代码
2018/08/28 Javascript
p5.js实现动态图形临摹
2019/10/23 Javascript
原生JavaScript写出Tabs标签页的实例代码
2020/07/20 Javascript
python使用点操作符访问字典(dict)数据的方法
2015/03/16 Python
Python下的Softmax回归函数的实现方法(推荐)
2017/01/26 Python
python实现textrank关键词提取
2018/06/22 Python
python计算列表内各元素的个数实例
2018/06/29 Python
Django url,从一个页面调到另个页面的方法
2019/08/21 Python
优秀的计算机专业求职信范文
2013/12/27 职场文书
办加油卡单位介绍信
2014/01/09 职场文书
学习委员自我鉴定
2014/01/13 职场文书
考试退步检讨书
2014/01/15 职场文书
爽歪歪广告词
2014/03/20 职场文书
党政领导班子群众路线对照检查材料
2014/10/26 职场文书
2015年汽车销售工作总结
2015/04/07 职场文书
春季运动会加油词
2015/07/18 职场文书
Python中requests库的用法详解
2022/06/05 Python