redis之django-redis的简单缓存使用
作者:人生不如戏 时间:2023-11-20 10:30:15
本文介绍了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 %}
来源:http://www.cnblogs.com/fu-yong/p/9142717.html
标签:django,redis,缓存
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
File input 的样式和文字的更改方法__适用于Firefox、IE等浏览器
2009-10-13 21:05:00
![](https://img.aspxhome.com/file/UploadPic/200910/13/620091012231645-99s.gif)
python docx 中文字体设置的操作方法
2021-01-12 22:33:44
SQL Server UPDATE语句的用法详解
2024-01-17 06:39:23
Linux下docker安装mysql8并配置远程连接
2024-01-18 15:53:43
![](https://img.aspxhome.com/file/2023/2/118122_0s.png)
TensorFLow 变量命名空间实例
2021-06-09 04:40:14
asp.net gridview 72般绝技
2024-03-08 18:34:10
![](https://img.aspxhome.com/file/2023/8/77188_0s.gif)
数据库查询哪个对像里面包含什么字段方法语句
2024-01-24 10:32:56
pytorch 模型可视化的例子
2023-06-13 08:24:34
![](https://img.aspxhome.com/file/2023/0/59480_0s.jpg)
sql server通过脚本进行数据库压缩全备份的方法【推荐】
2024-01-14 18:26:39
MAC下修改mysql默认字符集为utf8的方法
2024-01-20 15:37:16
![](https://img.aspxhome.com/file/2023/8/66158_0s.png)
vue中el-table格式化el-table-column内容的三种方法
2024-04-27 16:10:39
![](https://img.aspxhome.com/file/2023/6/132966_0s.png)
ajax返回中文乱码问题解决
2009-04-13 16:07:00
JavaScript使用Promise实现并发请求数限制
2024-04-16 09:54:44
Python生成器定义与简单用法实例分析
2021-03-12 21:45:59
python基于opencv实现人脸识别
2021-10-15 12:49:16
![](https://img.aspxhome.com/file/2023/8/68468_0s.jpg)
童年回忆录之python版4399吃豆豆小游戏
2021-04-30 18:52:44
![](https://img.aspxhome.com/file/2023/7/76717_0s.jpg)
golang中cache组件的使用及groupcache源码解析
2024-02-07 11:12:25
python实现解数独程序代码
2021-05-16 18:39:43
![](https://img.aspxhome.com/file/2023/8/101318_0s.png)
ASPImage组件的实现过程[图]
2008-02-03 15:37:00
![](https://img.aspxhome.com/file/UploadPic/20082/3/200823154516685s.gif)
PyTorch预训练的实现
2021-03-29 07:18:18