您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“Python如何操作Redis緩存數(shù)據(jù)庫”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Python如何操作Redis緩存數(shù)據(jù)庫”吧!
今天我們來學習如何使用Python操作Redis緩存數(shù)據(jù)庫,首先我們需要使用到一個redis庫,使用之前先安裝一下,依舊是使用pip進行安裝:
pip install redis
安裝好了redis庫之后,我們只需使用import redis
導入即可使用了,是不是很方便呀,之前的文章里也用到很多庫,大部分都是通過這兩個步驟使用的;
接下來我們開始講解如何操作Redis數(shù)據(jù)庫,介紹一下Redis的五大數(shù)據(jù)類型:分別是字符串類型string
、列表類型list
、集合類型set
、哈希類型hash
、有序集合類型 sorted set
要注意我們操作之前需要先開啟Redis數(shù)據(jù)庫,我們上一篇文章《Redis的使用》里面有告訴我們?nèi)绾伟惭bRedis數(shù)據(jù)庫,那我們現(xiàn)在先打開一個 命令窗口,使用 cd 命令切換目錄到 redis 所在的目錄運行
redis-server.exe redis.windows.conf
這時候另啟一個命令窗口,原來的不要關(guān)閉,不然就無法訪問服務(wù)端了,我們先試一下可不可以使用
# 設(shè)置鍵值對: set Angle 20 # 取出鍵值對: get Angle # 設(shè)置鍵值對: set class a # 取出鍵值對: get class
我們先通過例子看一下如何使用string類型數(shù)據(jù)
import redis # 連接數(shù)據(jù)庫 client = redis.StrictRedis(host='localhost', port=6379, db=0) ##### 單個string result = client.set('Mark', 100) print(result) # 輸出:True age = client.get('Mark') print(age.decode()) # 輸出:100 ##### 多個string student = { 'name': 'zeng', 'age': '22' } result1 = client.mset(student) print(result1) # True stu = client.mget(['name', 'age']) print(stu) # 輸出:[b'zeng', b'22'] ##### 刪除操作 d = client.delete('name', 'age') print(d) # 2 result = client.get('name') print(result) # None
上面的例子中分別對單個string、多個string進行了舉例,其中涉及到賦值和取值的方法,我們來看一下具體的介紹:
set()方法
:單個string操作方法,用于設(shè)置給定 key 的值。如果 key 已經(jīng)存儲其他值, SET 就覆寫舊值,且無視類型;
get()方法
:單個string操作,用于獲取指定 key 的值,如果key不存在,返回nil,如果key儲存的值不是字符串類型,返回一個錯誤;
decode()方法
:這個大家應(yīng)該都知道,用于解碼;
mset()
:多個string操作,用于同時設(shè)置一個或多個key-value對;
mget()
:多個string操作,返回所有給定key的值;
delete()
:刪除數(shù)據(jù),可以根據(jù)key來指定刪除數(shù)據(jù);
import redis client = redis.StrictRedis(host='localhost', port=6379, db=0)
lpush()方法
:令將一個或多個值插入到列表頭部,如果 key 不存在,一個空列表會被創(chuàng)建并執(zhí)行 LPUSH 操作,當 key存在但不是列表類型時,返回一個錯誤;
注意:在Redis 2.4版本以前的 LPUSH 命令,都只接受單個 value 值;
# 插入一個元素 result = client.lpush('lsts', 'name') print(result) # 創(chuàng)建列表 lsts = ('name', 'age', 'class', 'score') # 插入多個元素 result = client.lpush('lsts', *lsts) print(result) # 4
lrange()方法
:返回列表中指定區(qū)間內(nèi)的元素,區(qū)間以偏移量START和END指定,其中0表示列表的第一個元素,1表示列表的第二個元素,以此類推,以-1表示列表的最后一個元素, -2表示列表的倒數(shù)第二個元素,以此類推;
# 先加入進入的元素在后面,后加入的元素在前面 result = client.lrange('lsts', 0, -1) print(result) # [b'score', b'class', b'age', b'name']
lpop()方法
:用于移除并返回列表的第一個元素;
# 從左邊刪除一個元素 result = client.lpop('lsts') print(result) # b'score'
import redis client = redis.StrictRedis(host='localhost', port=6379, db=0)
sadd()
:將一個或多個成員元素加入到集合中,已經(jīng)存在于集合的成員元素將被忽略;
sets = ('name', 'age', 'class', 'score') result = client.sadd('new_sets', *sets) print(result) # 4
smembers()
:判斷成員元素是否是集合的成員;
result = client.smembers('new_sets') print(result)
srem()
:用于移除集合中的一個或多個成員元素,不存在的成員元素會被忽略;
result = client.srem('new_sets', 'address') print(result) # 1
import redis client = redis.StrictRedis(host='localhost', port=6379, db=0)
hset():用于為哈希表中的字段賦值 ,如果哈希表不存在,一個新的哈希表被創(chuàng)建并進行HSET操作;
client.hset("hash2", "k1", "v1") client.hset("hash2", "k2", "v2")
hkeys()
:用于獲取哈希表中的所有域(field);
print(client.hkeys("hash2")) # [b'k1', b'k2']
hget()
:用于返回哈希表中指定字段的值;
print(client.hget("hash2", "k1")) # b'v1'
hmget()
:用于返回哈希表中,一個或多個給定字段的值;
print(client.hmget("hash2", "k1", "k2")) # [b'v1', b'v2']
import redis client = redis.StrictRedis(host='localhost', port=6379, db=0)
zadd(name, *args, **kwargs)
:在name對應(yīng)的有序集合中添加元素;
d = {'Join': '20'} result = client.zadd("zset1", d) print(result) # 1
zcard(name)
:獲取name對應(yīng)的有序集合元素的數(shù)量;
result = client.zcard("zset1") print(result)
zcount(name, min, max)
:獲取name對應(yīng)的有序集合中分數(shù) 在 [min,max] 之間的個數(shù);
client.zcount("zset1", 0, 1)
zincrby(name, value, amount)
:自增name對應(yīng)的有序集合的 name 對應(yīng)的分數(shù);
print(client.zincrby("zset1", 1, '20'))
到此,相信大家對“Python如何操作Redis緩存數(shù)據(jù)庫”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。