自定义使用redis

创建url

定义单例模式连接池

import redis
# 连接池
POOL = redis.ConnectionPool(host='10.211.55.4', port=6379,password='luffy1234',max_connections=1000)

导入连接池,并连接

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('获取成功')

使用第三方组件

安装

pip3 install django-redis 

连接池不用写,内部帮我们定义好了连接池。

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": "密码",
}
}
}  

使用

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("back")
return HttpResponse('获取成功')

可以写多个,自动选择链接

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("back")
return HttpResponse('获取成功')

高级配置

1. 全站缓存

给整个网站都设置缓存

设置中间件

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)  

还可以设置超时时间

2. 单视图

全栈缓存太大了,我们如何让它进行单页面缓存。

去掉中间件,加装饰器

from django.shortcuts import render,HttpResponse
import time
from django.views.decorators.cache import cache_page
from rest_framework.throttling import SimpleRateThrottle @cache_page(60 * 15)
def index(request):
ctime = str(time.time())
return HttpResponse(ctime) def order(request): return render(request,'order.html')

3. 局部页面

补充:

rest framework框架访问频率限制推荐放到 redis/memecached

# 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": "密码",
}
}
}
# FileBased配置
# CACHES = {
# 'default': {
# 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
# 'LOCATION': '/var/tmp/django_cache',
# }
# }
# Memcached配置
# CACHES = {
# 'default': {
# 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
# 'LOCATION': '127.0.0.1:11211',
# }
# }  

设置哪个,缓存放在哪。

memarcahe不能做持久化。

最新文章

  1. 学习AOP之深入一点Spring Aop
  2. Android开发究竟用什么工具,Eclipse||AS
  3. BZOJ 2179: FFT快速傅立叶
  4. MyEclipse中代码格式化后自动换行
  5. bzoj3926: [Zjoi2015]诸神眷顾的幻想乡
  6. ThinkPHP中使用ajaxReturn进行ajax交互
  7. 在SWING里嵌入SWT的组件
  8. Java 命名空间的由来和引入
  9. AspNetPager 的使用
  10. css小技巧,如何制作一个箭头符号
  11. Xcode制作插件
  12. Python之路- 反射&定制自己的数据类型
  13. 关于Linux虚拟化技术KVM的科普 科普三(From OenHan)
  14. mybatis中namespace配置方式
  15. Applet程序组件与AJAX技术
  16. 每日linux命令学习-head命令和tail命令
  17. Unity3D学习笔记(三十六):Shader着色器(3)- 光照
  18. SRM472
  19. libcurl下载文件
  20. mysql修改表的存储引擎(myisam<=>innodb)【转】

热门文章

  1. HttpServletRequest获取请求得URL信息
  2. Jenkins之构建触发器配置(转载)
  3. 开发mis系统用到的技术
  4. Redis底层探秘(一):简单动态字符串(SDS)
  5. NSString *const 和 const NSString * 的区别
  6. IntellJ IDEA快捷键汇总
  7. 四、Jmeter--参数化
  8. 在MySQL中设置事务隔离级别有2种方法:
  9. Azure ARM模式下VNet配置中需要注意的几点事项
  10. 第十课 go语言函数