django中使用redis
方式一:
自己写,使用连接池
pool.py
import redis POOL=redis.ConnectionPool(max_connections=10,host="localhost",port=6379) # 任意位置使用 class TestView(APIView): def get(self, requeste): conn=redis.Redis(connection_pool=POOL) print(conn.get('name')) return Response('ok')
方式二
使用第三方 djagno-redis
安装:
pip install django-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", } } }
在使用位置
from django_redis import get_redis_connection conn=get_redis_connection() print(conn.get('name'))
一旦这么配置了,以后django的缓存也缓存到reids中了
cache.set('asdfasd','asdfas')
以后在django中,不用使用redis拿连接操作了,直接用cache做就可以了
不需要关注设置的值类型是什么
cache.set('wife',['dlrb','lyf']) # value值可以放任意数据类型
底层原理,把value通过pickle转成二进制,以redis字符串的形式存到了redis中
pickle是python独有的序列化和反序列化,只能python玩,把python中所有数据类型都能转成二进制,通过二进制可以在反序列化成功pyhton中的任意对象