django中使用redis
# 两种方式
-方式一:自定义的通用方案(跟框架无关)
-写一个py文件:redis_pool.py #连接池
import redis
POOL=redis.ConnectionPool(max_connections=10) 生成POOL。做成单例
-在用的位置,导入直接使用
conn = redis.Redis(connection_pool=POOL)
conn.incrby('a1')
-方式二:django使用redis -------自带连接池
-django中有个模块,django-redis,方便我们快速集成redis
-1 下载:pip install django-redis
-2 配置文件配置:
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": "123",
}
}
}
-3 在使用的地方,导入直接使用
from django_redis import get_redis_connection
class MyResponseView(APIView):
def get(self, request):
conn = get_redis_connection() # 从连接池中拿出一个链接
conn.incrby('a1')
conn.set('name','彭于晏')
return APIResponse()
django缓存
# django 是大而全的框架,内置了很多web开发需要的东西,缓存内置了
# 缓存:可以把django中的一个变量(数据),存放到某个位置,下次还可以取出来
# 之前用过:默认放在:内存中,其实可以放在文件中,数据库,redis。。。。
from django.core.cache import cache
cache.set('key','value',5) # 存放值 5为有效时间
res=cache.get('key') # 取值
# 通过配置,控制存放在哪,只要如下写,就会放在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": "123",
}
}
}# django缓存最强大之处在于,只要是python的变量,任意类型都可以,尽管使用set设置值
l = [1, 'lqz', [1, 3, 4, 5, 6], '彭于晏']
cache.set('ll1', l)
# 以后再django中往redis放数据,就用cache即可# redis的5大数据类型,只支持一层
# 看一下这篇文章:https://www.cnblogs.com/liuqingzheng/articles/9803351.html
django缓存的强大之处
django缓存最强大之处在于,只要是python的变量,任意类型都可以,尽管使用set设置值
它是通过python所独有的方式,将任意类型的变量,序列化存在redis中-------pickle序列化文章来源:https://www.toymoban.com/news/detail-511366.html
#序列化
-json序列化---》得到字符串
json不能序列化对象(自定义的类的对象)
-数据结构:数据的组织形式跟下面不一样
能序列化: 数字,字符串,布尔,列表,字典 时间对象
-pickle序列化
-python独有的,二进制形式
-python可以序列化所有对象---》二进制形式
-二进制---》返序列化回来---》对象:属性,有方法文章来源地址https://www.toymoban.com/news/detail-511366.html
到了这里,关于django中使用redis和django缓存的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!