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,缓存
0
投稿

猜你喜欢

  • File input 的样式和文字的更改方法__适用于Firefox、IE等浏览器

    2009-10-13 21:05:00
  • 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
  • TensorFLow 变量命名空间实例

    2021-06-09 04:40:14
  • asp.net gridview 72般绝技

    2024-03-08 18:34:10
  • 数据库查询哪个对像里面包含什么字段方法语句

    2024-01-24 10:32:56
  • pytorch 模型可视化的例子

    2023-06-13 08:24:34
  • sql server通过脚本进行数据库压缩全备份的方法【推荐】

    2024-01-14 18:26:39
  • MAC下修改mysql默认字符集为utf8的方法

    2024-01-20 15:37:16
  • vue中el-table格式化el-table-column内容的三种方法

    2024-04-27 16:10:39
  • 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
  • 童年回忆录之python版4399吃豆豆小游戏

    2021-04-30 18:52:44
  • golang中cache组件的使用及groupcache源码解析

    2024-02-07 11:12:25
  • python实现解数独程序代码

    2021-05-16 18:39:43
  • ASPImage组件的实现过程[图]

    2008-02-03 15:37:00
  • PyTorch预训练的实现

    2021-03-29 07:18:18
  • asp之家 网络编程 m.aspxhome.com