django redis的使用方法

2021-10-10 05:38:28 字數 3744 閱讀 7144

1.安裝

pip install django-redis

2.作為 cache backend 使用配置

caches = 

}}

url 格式舉例

redis://[:password]@localhost:6379/0

rediss://[:password]@localhost:6379/0

unix://[:password]@/path/to/socket.sock?db=0

配置session的儲存引擎

session_engine = "django.contrib.sessions.backends.cache"

session_cache_alias = "default"

儲存在資料庫中,如下設定可以寫,也可以不寫,這是預設儲存方式。

session_engine='django.contrib.sessions.backends.db'
儲存在快取中:儲存在本機記憶體中,如果丟失則不能找回,比資料庫的方式讀寫更快。

session_engine='django.contrib.sessions.backends.cache'
混合儲存:優先從本機記憶體中訪問,如果沒有則從資料庫中訪問

session_engine='django.contrib.sessions.backends.cached_db'
1.redis的儲存格式為key-value格式。key是字串型別,value的型別有5種:string、hash、list、set、zset。

2.redis中關於鍵的常見的操作:

2.1檢視左右的鍵:keys *

2.2檢視某個鍵是否存在,存在返回1不存在返回0:exists key1

2.3檢視鍵的值對應的資料型別:type key1

2.4刪除鍵值對:del key1 key2

2.5設定鍵的過期時間,如果沒有指定預設一直存在:expire key seconds

2.7清空資料庫:flushall

3.string型別的基本操作:

3.1儲存

3.2獲取

get key  獲取單個 mget key1 key2  獲取多個

3.3刪除

del key

4 hash型別的基本操作:

4.1儲存

hset key field value #設定單個屬性

hmset key field1 value1 field2 value2 … #設定多個屬性

4.2獲取

hkeys key # 獲取指定鍵的所有屬性

hget key field # 獲取單個屬性的值

hmget key field1 field2 … # 獲取多個屬性的值

hvals key # 獲取所有屬性的值

4.3刪除

del key # 刪除整個hash的鍵和值

hdel key field1 field2 … # 刪除屬性和屬性對應的值

4.4關於hash型別的個人理解:

可以將hash型別理解為用來儲存物件:

5 list型別的基本操作:

5.1儲存

lpush key value1 value2 … #從左側依次插入資料

rpush key value1 value2 … #從右側依次插入資料

linsert key before或after 現有元素 新元素 #從指定元素的前或後插入新元素

5.2獲取

lrange key start stop

start、stop為元素的下標索引,從左側開始,第乙個元素為0,-1標識最後乙個元素。獲取所有的元素:lrange key 0 -1

5.3刪除指定元素

lrem key count value

將列表中前count次出現的值為value的元素移除。

count > 0: 從頭到尾移除

count < 0: 從尾到頭移除

count = 0: 移除所有

6.set型別的基本操作

特點:無序集合、元素唯一性不重複、沒有修改操作

6.1增加元素

sadd key member1 member2 …

6.2獲取元素

smembers key # 返回所有元素

6.3刪除指定元素

srem key member1 member2 …

7.zset型別的資料操作

特點:有序集合、元素唯一性不重複、沒有修改操作、每個元素都會關聯乙個double型別的權重,根據權重從小到大排列

7.1增加

zadd key score1 member1 score2 member2 …

7.2獲取

zrange key start stop  # 根據索引獲取

zrangebyscore key min max  # 獲取權重在min和max之間的資料

zscore key member  # 返回成員member的score值

7.3刪除

zrem key member1 member2 … # 刪除指定元素

zremrangebyscore key min max #刪除權重在指定範圍的元素

五、redis與python進行互動:

1.在虛擬環境中安裝redis包:

pip install redis

2.呼叫模組:

from redis import strictredis

3.建立物件:

sr = strictredis(host=『localhost』, port=6379, db=0)  # 預設就是這樣的值,不寫也行。

4.用sr這個物件操作redis,將redis中的命令當作函式讓sr呼叫就ok。

六、django框架中session儲存到redis中的配置

預設情況下session是儲存在資料庫中的,但是當用session儲存使用者的狀態時,使用者頻繁的訪問伺服器,會增大資料庫的壓力,也會降低使用者訪問的速度。為了解決這個問題將session儲存到redis中。

第一種配置方法:(不使用django中session預設的儲存方式,直接將session儲存的地方配置到redis中)

pip install django-redis-sessions==0.5.6

session_engine = 『redis_sessions.session』

session_redis_host = 『localhost』

session_redis_port = 6379

session_redis_db = 2

session_redis_password = 『』

session_redis_prefix = 『session』

第二種配置方法:(先將django中的快取設定為redis,然後將session的儲存地方設定為django的快取中)

#1.先在虛擬環境中安裝包

pip install django_redis

#2. 設定redis作為django的快取設定

caches = 

}}

session_engine = 「django.contrib.sessions.backends.cache」

session_cache_alias = 「default」

django redis實現底層的快取api

1.設定快取 這裡使用redis作為快取的資料庫 caches 將資料庫查詢到到的queryset物件序列化後儲存.print pickle.dumps results cache.set key,pickle.dumps results 60 2 獲取快取到redis中的資料,將資料序列化輸出.a...

iOS MBProgressHUD的使用方法

mbprogresshud就是乙個非常好用的第三方庫,可以快速接入載入的介面,下面貼 下面的 包含了各種常用型別的載入 import viewcontroller.h import mbprogresshud.h inte ce viewcontroller property atomic,assi...

dbms output put line使用方法

begin dbms output.put line a end 如果你是再sql plus中,只要再環境中打出 set serveroutput on 就可以了.還有一種方法 就是使用環境中的繫結變數也可以.再環境中定義 variable name varchar2 50 然後把過程新增乙個out...