一、redis數據操作
1、redis的存儲格式為 key-value格式。key是字符串類型,value的類型有5種:string、hash、list、set、zset。
2、redis中關於鍵的常見的操作:
1、查看左右的鍵:keys *
2、查看某個鍵是否存在,存在返回1不存在返回0:exists key1
3、查看鍵的值對應的數據類型:type key1
4、刪除鍵值對:del key1 key2
5、設置鍵的過期時間,如果沒有指定默認一直存在:expire key seconds
6、查看鍵的有效時間:ttl key1
7、清空數據庫:flushall
3、string類型的基本操作:
1、保存
set key value
保存單個鍵值對 mset key1 value1 key2 value2
保存多個鍵值對 setex key seconds value
設置鍵值和過期時間 append key value追加值
2、獲取
get key
獲取單個 mget key1 key2 獲取多個
3、刪除
del key
4、 hash類型的基本操作:
1、保存
hset key field value #設置單個屬性 hmset key field1 value1 field2 value2 ... #設置多個屬性
2、獲取
hkeys key # 獲取指定鍵的所有屬性 hget key field # 獲取單個屬性的值 hmget key field1 field2 ... # 獲取多個屬性的值 hvals key # 獲取所有屬性的值
del key # 刪除整個hash的鍵和值 hdel key field1 field2 ... # 刪除屬性和屬性對應的值
4、關於hash類型的個人理解:
可以將hash類型理解為用來存儲對象:
5、list類型的基本操作:
1、保存
lpush key value1 value2 ... #從左側依次插入數據 rpush key value1 value2 ... #從右側依次插入數據 linsert key before或after 現有元素 新元素 #從指定元素的前或后插入新元素
2、獲取
lrange key start stop
start、stop為元素的下標索引,從左側開始,第一個元素為0,-1標識最后一個元素。獲取所有的元素:lrange key 0 -1
3、刪除指定元素
lrem key count value
count > 0: 從頭到尾移除
count < 0: 從尾到頭移除
count = 0: 移除所有
6、set類型的基本操作
特點:無序集合、元素唯一性不重復、沒有修改操作
1、增加元素
sadd key member1 member2 ...
2、獲取元素
smembers key # 返回所有元素
3、刪除指定元素
srem key member1 member2 ...
7、zset類型的數據操作
特點:有序集合、元素唯一性不重復、沒有修改操作、每個元素都會關聯一個double類型的權重,根據權重從小到大排列
1、增加
zadd key score1 member1 score2 member2 ...
2、獲取
zrange key start stop # 根據索引獲取 zrangebyscore key min max # 獲取權重在min和max之間的數據 zscore key member # 返回成員member的score值
3、刪除
zrem key member1 member2 ... # 刪除指定元素 zremrangebyscore key min max #刪除權重在指定范圍的元素
二、redis與python進行交互
1、在虛擬環境中安裝redis包:
pip3 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中)
# 1.在虛擬環境中安裝包 pip install django-redis-sessions==0.5.6 # 2.在Django項目的settings文件中增加下面的配置 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 = { "default": { "BACKEND": "django_redis.cache.RedisCache", # 把這里緩存你的redis服務器ip和port "LOCATION": "redis://172.16.179.142:6379/12", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", } } } # 3.設置redis存儲django的session信息 SESSION_ENGINE = "django.contrib.sessions.backends.cache" SESSION_CACHE_ALIAS = "default"