Django-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
|
1
|
pip3 install django-redis |
配置
settings.py
|
1
2
3
4
5
6
7
8
9
10
11
12
|
# 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
|
1
2
3
4
5
6
7
8
9
10
11
|
import redisfrom django.shortcuts import render,HttpResponsefrom django_redis import get_redis_connectiondef index(request): conn = get_redis_connection("default") return HttpResponse('设置成功')def order(request): conn = get_redis_connection("default") return HttpResponse('获取成功') |
|
1
2
3
4
5
6
7
8
9
10
11
|
from rest_framework.views import APIViewfrom rest_framework.response import Responsefrom django.core.cache import cacheclass OrderView(APIView): def get(self,request,*args,**kwargs): # conn = get_redis_connection('default') cache.set('a','b') print(cache.get('a')) return Response('..') |
全站缓存
使用中间件,经过一系列的认证等操作,如果内容在缓存中存在,则使用FetchFromCacheMiddleware获取内容并返回给用户,
当返回给用户之前,判断缓存中是否已经存在,如果不存在则UpdateCacheMiddleware会将缓存保存至缓存,从而实现全站缓存
|
1
2
3
4
5
|
MIDDLEWARE = [ 'django.middleware.cache.UpdateCacheMiddleware', # 其他中间件... 'django.middleware.cache.FetchFromCacheMiddleware', ] |
一个放在最上面,一个放在最下面
views.py
|
1
2
3
4
5
6
7
8
9
10
11
|
from django.shortcuts import render,HttpResponseimport timedef index(request): ctime = str(time.time()) return HttpResponse(ctime)def order(request): ctime = str(time.time()) return HttpResponse(ctime) |
配置了全站缓存,在不同的时间(一定范围内),上面两个视图返回的时间是一样的,都是缓存时的时间
单独视图缓存
方式一:通过装饰器
|
1
2
3
4
5
|
from django.views.decorators.cache import cache_page @cache_page(60 * 15) def my_view(request): ... |
方式二:通过url
|
1
2
3
4
5
|
from django.views.decorators.cache import cache_page urlpatterns = [ url(r'^foo/([0-9]{1,2})/$', cache_page(60 * 15)(my_view)), ] |
局部页面缓存
1. 引入TemplateTag
|
1
|
{% load cache %} |
2. 使用缓存
|
1
2
3
|
{% cache 5000 缓存的key %} 缓存内容{% endcache %} |
Django-django-redis使用的更多相关文章
- django+celery+redis环境搭建
初次尝试搭建django+celery+redis环境,记录下来,慢慢学习~ 1.安装apache 下载httpd-2.0.63.tar.gz,解压tar zxvf httpd-2.0.63.tar. ...
- redis的使用与 django的redis的使用
1. 使用redis数据库分为两种: 第一种是在python语言中直接使用的方式, 第二种就是在django中使用django_redis模块来数用 第一种直接在python语言中使用redis im ...
- django celery redis 定时任务
0.目的 在开发项目中,经常有一些操作时间比较长(生产环境中超过了nginx的timeout时间),或者是间隔一段时间就要执行的任务. 在这种情况下,使用celery就是一个很好的选择. cele ...
- Django中redis的使用方法(包括安装、配置、启动)
一.安装redis: 1.下载: wget http://download.redis.io/releases/redis-3.2.8.tar.gz 2.解压 tar -zxvf redis-3.2. ...
- django+celery+redis实现运行定时任务
0.目的 在开发项目中,经常有一些操作时间比较长(生产环境中超过了nginx的timeout时间),或者是间隔一段时间就要执行的任务. 在这种情况下,使用celery就是一个很好的选择. cele ...
- django使用redis做缓存
Django 使用 Redis 做缓存 django中应用redis:pip3 install django-redis - 配置 CACHES = { "default": { ...
- [django]django xlrd处理xls中日期转换问题
xlrd会把xls文件中比如20160--03-01类型的时间转换成整数,那么我们如何保证xlrd读取进来的时间为2016-03-01格式呢? 使用xlrd中的xldate_as_tuple函数 代码 ...
- [django]Django model中数据批量导入bulk_create()
参考: https://www.cnblogs.com/ccorz/p/Django-model-zhong-shu-ju-pi-liang-dao-rubulkcreat.html import o ...
- django celery redis简单测试
希望在下一版中,能用这个小芹菜,来实现异步的多任务并行哈. 安装REDIS之类的不表,只说在DJANGO当中要注意配置的事项. 0,安装插件 yum install redis-server pip ...
- python用Django+Celery+Redis 监视程序(一)
C盘创建一个目录就叫DjangoDemo,然后开始在该目录下操作. 1.新建Django工程与应用 运行pip install django 安装django 这里我们建一个名为demo的项目和hom ...
随机推荐
- 微信公众平台appid和appsecret在哪
1.appid和appsecret是微信公众平台服务号才有的,如果自己家的公众平台不是服务号,需要升级为服务号. 2.登录服务号,登录“服务”条目,“服务中心”如图. 3.点击“自定义菜单”-“开发模 ...
- bzoj1776
点分治/贪心 对于点分治的理解不够深刻...点分治能统计树上每个点对的信息,那么这里就是统计同种颜色点对之间的最大距离,自然可以用点分 然后点分,每次统计最大距离,但是略微卡常... 还有一种贪心的方 ...
- 8. Ext文本输入框:Ext.form.TextField属性汇总
转自:https://blog.csdn.net/ryuudenne/article/details/8834650 Ext.form.TextField主要配置表: allowBlank ...
- bootstrap的modal弹窗,在多层窗口关闭时只会关闭自窗口,不再关闭父窗口
bootstrap多层modal弹窗时.当子窗口关闭时,所有父窗口一起关闭. 原因是bootstrap在窗口关闭事件委托时,委托给所有窗口. 如源码: this.$element.on('click. ...
- [App Store Connect帮助]四、添加 App 图标、App 预览和屏幕快照(6)设置 App 预览海报帧
App 预览海报帧仅在 App 状态为可编辑时,才能被编辑. 必要职能:“帐户持有人”职能.“管理”职能.“App 管理”职能或“营销”职能.请参见职能权限. 在首页上,点按“我的 App”,选择您的 ...
- Python基础类型(一) int 整型
Python算术运算符 以下假设变量: a=10,b=20: 运算符 描述 实例 + 加 - 两个对象相加 a + b 输出结果 30 - 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 ...
- 网络连接详细信息出现两个自动配置ipv4地址的解决办法
问题描述:网络连接详细信息出现两个自动配置ipv4地址,一个是有效地址,一个是无效地址. 解决办法: 先将本地连接ip设置成自动获取 点击开始——>运行——>输入cmd,回车,进入命令行界 ...
- JavaScript编程艺术-第10章-10.1-动画
10.1—最简单的动画 ***代码亲测可用*** 动画:让元素位置随着时间而不断地发生变化 HTML: <!DOCTYPE HTML> <html> <head> ...
- python自动化测试学习笔记-9测试框架
学习了这么久的python,我们已经可以自己搭建一个简单的测试和框架了,先从简单的开始,有时我们编写接口的测试用例会用excel进行编写,以下面的接口测试用例模板为例,进行编写:
- [C陷阱和缺陷] 第4章 连接
一个C程序可能是由多个分别编译的部分组成,这些不同部分通过连接器合并成一个整体.在本章中,我们将考查一个典型的连接器,注意它是如何对C程序进行处理的,从而归纳出一些由于连接器的特点而可能导致的错误. ...