django快取

Jerry`發表於2021-07-11

django-redis官網文件:
http://django-redis-chs.readthedocs.io/zh_CN/latest/
redis.py文件
https://redis-py.readthedocs.io/en/latest/

#Django的快取配置
#caches快取,
CACHES={
    "default":{
        "BACKEND":"django_redis.cache.RedisCache",
        "LOCATION":"redis://127.0.0.1:6379/9",
        "OPTIONS":{
            "CLIENT_CLASS":"django_redis.client.DefaultClient",
        }
    }
}
#下面是把使用者登入的session儲存在redis中
#配置session儲存
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "default"

快取設定

from django.core.cache import cache #快取
設定快取:cache.set("yzm",rand_str,20)#鍵,值,時間
讀快取:cache.get("yzm")#鍵

redis操作

11614481-7e01070b9d18e3b7.jpg
瀏覽記錄.jpg
#瀏覽記錄
from django_redis import get_redis_connection   #redis資料庫
conn = get_redis_connection("default")
history_key = "history_%d"%user.id
#移除列表中的goods_id
conn.lrem(history_key,0,goods_id)
#把goods_id插入列表的左側
conn.lpush(history_key,goods_id)
#只儲存使用者最新瀏覽的5條資訊
conn.ltrim(history_key,0,4)
11614481-85fe898e383b7858.jpg
購物車jpg
購物車
        conn = get_redis_connection('default')
        cart_key = "cart_%d" %user.id
        #先嚐試獲取sku_id的值,使用hget cart_key屬性
        #如果sku_id在hash中不存在,hget返回None,hget 鍵 屬性
        cart_count = conn.hget(cart_key,sku_id)
=================================================
        conn = get_redis_connection("default")
        cart_key = "cart_%d"%user.id
        #hgetall:{"商品id":"商品數量"}
        cart_dict = conn.hgetall(cart_key)
        #redis更新
        conn.hset(cart_key,sku_id,count)
        vals = conn.hvals(cart_key) #hvals返回所有的值
        #刪除
        conn.hdel(cart_key,sku_id)
        #獲取長度
        cart_count = conn.hlen(cart_key)
=================================================
···

相關文章