django自帶cache結合redis創建永久緩存


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')


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM