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使用chardet判断字符串编码的方法
Mar 13 Python
Python中处理字符串之endswith()方法的使用简介
May 18 Python
Python实现PS图像抽象画风效果的方法
Jan 23 Python
Python实现批量压缩图片
Jan 25 Python
Flask框架各种常见装饰器示例
Jul 17 Python
Python Selenium 之关闭窗口close与quit的方法
Feb 13 Python
Python 获取ftp服务器文件时间的方法
Jul 02 Python
Python ATM功能实现代码实例
Mar 19 Python
Python如何设置指定窗口为前台活动窗口
Aug 12 Python
Python经纬度坐标转换为距离及角度的实现
Nov 01 Python
python 网络编程要点总结
Jun 18 Python
Python如何快速找到多个字典中的公共键(key)
Apr 29 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开发留言板的CRUD(增,删,改,查)操作
2012/04/19 PHP
解析PHP获取当前网址及域名的实现代码
2013/06/23 PHP
laravel 解决路由除了根目录其他都404的问题
2019/10/18 PHP
PHP实现本地图片转base64格式并上传
2020/05/29 PHP
javascript Discuz代码中的msn聊天小功能
2008/05/25 Javascript
jQuery+css实现百度百科的页面导航效果
2014/12/16 Javascript
了解Javascript的模块化开发
2015/03/02 Javascript
jquery序列化方法实例分析
2015/06/10 Javascript
实例详解Nodejs 保存 payload 发送过来的文件
2016/01/14 NodeJs
Jquery和JS获取ul中li标签的实现方法
2016/06/02 Javascript
JavaScript中 DOM操作方法小结
2017/04/25 Javascript
jquery仿京东商品放大浏览页面
2017/06/06 jQuery
详解React中的组件通信问题
2017/07/31 Javascript
浅谈Angular2 ng-content 指令在组件中嵌入内容
2017/08/18 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
2017/09/21 jQuery
javascript面向对象三大特征之封装实例详解
2019/07/24 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
js屏蔽F12审查元素,禁止修改页面代码等实现代码
2020/10/02 Javascript
python 简单的绘图工具turtle使用详解
2017/06/21 Python
python下载文件记录黑名单的实现代码
2017/10/24 Python
Python get获取页面cookie代码实例
2018/09/12 Python
Python3爬虫学习入门教程
2018/12/11 Python
使用python爬取微博数据打造一颗“心”
2019/06/28 Python
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
装饰活动策划方案
2014/02/11 职场文书
年度考核自我鉴定
2014/03/19 职场文书
《花木兰》教学反思
2014/04/09 职场文书
班子成员四风问题自我剖析材料
2014/09/29 职场文书
2014年机关党建工作总结
2014/11/11 职场文书
2014年世界艾滋病日宣传活动总结
2014/11/18 职场文书
大学生个人总结范文
2015/02/15 职场文书
病假条格式范文
2015/08/17 职场文书
小学一年级语文教学反思
2016/03/03 职场文书
2016年公司“3.12”植树节活动总结
2016/03/16 职场文书
jquery插件实现代码雨特效
2021/04/24 jQuery
MySQL非空约束(not null)案例讲解
2021/08/23 MySQL