Redis应用(django)
自定义使用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不能做持久化。
Redis应用(django)的更多相关文章
- Redis & Python/Django 简单用户登陆
一.Redis key相关操作: 1.del key [key..] 删除一个或多个key,如果不存在则忽略 2.keys pattern keys模式匹配,符合glob风格通配符,glob风格的通配 ...
- nginx+uwsgi+python3+pipenv+mysql+redis部署django程序
1.下载项目 git clone https://github.com/wangyitao/MyBlogs.git 2.进入Myblogs目录 cd MyBlogs 3.创建虚拟环境并且安装依赖 pi ...
- ubuntu18.04+gunicorn+nginx+supervisor+mysql+redis安装django项目
Ubuntu18.04 install Django project 项目准备: ECS 实例 (云服务器) 此安装部署方案适合本地ubuntu18.04系统安装和虚拟机中ubuntu18.04系统安 ...
- 使用redis作为django缓存数据库
1.Redis的Windows版本.打开https://github.com/MSOpenTech/redis/releases下载msi安装包.该版本是64位.安装msi过程中,有个选项是否加入系统 ...
- Using Redis as Django's session store and cache backend
http://michal.karzynski.pl/blog/2013/07/14/using-redis-as-django-session-store-and-cache-backend/
- Django分析之使用redis缓存服务器
时间长没有更新了,这段时间一直忙着一个项目,今天就记录一个现在经常会用到的技术吧. redis相信大家都很熟悉了,和memcached一样是一个高性能的key-value数据库,至于什么是缓存服务器, ...
- Redis+Django(Session,Cookie)的用户系统
一.Django authentication django authentication提供了一个便利的user api接口,无论在py中 request.user,参见Request and re ...
- Redis+Django(Session,Cookie、Cache)的用户系统
转自 http://www.cnblogs.com/BeginMan/p/3890761.html 一.Django authentication django authentication 提供了一 ...
- 在django中使用redis
方式一 utils文件夹下,简历redis_pool.py import redis POOL = redis.ConnectionPool(host='127.0.0.1', port=6379,p ...
- $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
一 Python操作Redis之普通连接 #先安装 pip3 install redis import redis r = redis.Redis(host='127.0.0.1', port=637 ...
随机推荐
- grunt-2x2x
a grunt plugin to resize and rename @2x.png(jpg,gif,) image to .png(jpg,gif) 场景:移动前端开发中,设计给的psd都是双倍图 ...
- main函数的参数的用法
说明:main函数的参数的用法源代码: #include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[] ...
- Bootstrap确定样式让屏幕缩小后布局不乱
解决方案是如下 结果如下:
- k2 4.6.9安装记录-够复杂了
首先需要准备一台Windows server 2008R2 系统.可以从微软官方下载. 下载地址: http://www.microsoft.com/zh-cn/download/confirmati ...
- git之clone
git clone 命令参数: usage: git clone [options] [--] <repo> [<dir>] -v, --verbose be more ver ...
- 多版本python管理miniconda(集成了virtualenv和pip功能)
miniconda下载地址: https://conda.io/docs/user-guide/install/index.html Installing on Linux Download the ...
- Java-API-Package:org.springframework.web.bind.annotation
ylbtech-Java-API-Package:org.springframework.web.bind.annotation 1.返回顶部 1. @NonNullApi @NonNullField ...
- SQL基础(2)
SQL TOP (1)TOP子句 OP 子句用于规定要返回的记录的数目. 对于拥有数千条记录的大型表来说,TOP 子句是非常有用的. 注释:并非所有的数据库系统都支持 TOP 子句. (2)SQL S ...
- 【SymmetricDS】实现新的数据库方言
2018-04-20 by 安静的下雪天 http://www.cnblogs.com/quiet-snowy-day/p/8890785.html 本文翻译自SymmetricDS官方文档 I ...
- 第三章 Java内存模型(下)
锁的内存语义 中所周知,锁可以让临界区互斥执行.这里将介绍锁的另一个同样重要但常常被忽视的功能:锁的内存语义 锁的释放-获取建立的happens-before关系 锁是Java并发编程中最重要的同步机 ...