0916自我總結
django自帶cache結合redis創建永久緩存
1.redis庫
1.安裝redis與可視化操作工具
1.安裝redis
https://www.runoob.com/redis/redis-install.html
2.可視化操作工具
2.在服務中管理redis服務器的開啟關閉
3.命令行簡單使用redis
-- redis-cli # 啟動客戶端
-- set key value # 設置值
-- get key # 取出值
4.redis支持
字符串:String
字典:Hash
列表:List
無序集合:Set
有序集合:Sorted Set
https://www.runoob.com/redis/redis-tutorial.html
5.特點
內存數據庫:數據存儲在內存中,存取效率極高
nosql數據庫:沒有mysql那樣的表關系,通過 類似字典方式,用 key-value 方式存儲數據
高並發支持:單線程單進程並發
數據可持久化:redis中的數據可以保存在硬盤中,支持與mysql等數據庫完成數據同步 #獨有特點
支持的類型也較多:相比其他內存數據庫(memcache)#獨有特點
2.redis庫python中操作
1.安裝模塊
pip3 install redis
2.簡單使用
直接連接使用
import redis
r = redis.Redis(db=0) #第幾個庫
連接池使用
import redis
pool = redis.ConnectionPool(host='127.0.0.1', port=6379)
r = redis.Redis(connection_pool=pool)
常用的創建
r.set('111',123)
print(r.get('11111'))
print(type(r.get('name')))
r.hmset('dic',{'a':1,'b':1})
print(r.hgetall('dic'))
for a in r.hgetall('dic').values():
print(a.decode('utf8'))
3.結合使用
結合兩者的特點cache序列化和返序列化操作簡單
,redis支持類型多也可以永久使用
djang中.setting.py配置
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379", #redis的地址
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
"CONNECTION_POOL_KWARGS": {"max_connections": 100} #池的個數
}
}
}
#前提必須安裝redis第三方數據模塊
views.py
from django.core.cache import cache # 結合配置文件實現插拔式
# 存放token,可以直接設置過期時間
cache.set('token', 'header.payload.signature', 10)
# 取出token
token = cache.get('token')