Python操做Redis緩存數據庫

今天咱們來學習如何使用Python操做Redis緩存數據庫,首先咱們須要使用到一個redis庫,使用以前先安裝一下,依舊是使用pip進行安裝:html

pip install redis

安裝好了redis庫以後,咱們只需使用import redis導入便可使用了,是否是很方便呀,以前的文章裏也用到不少庫,大部分都是經過這兩個步驟使用的; 接下來咱們開始講解如何操做Redis數據庫,介紹一下Redis的五大數據類型:分別是字符串類型string列表類型list集合類型set哈希類型hash有序集合類型 sorted setredis

###開啓數據庫數據庫

要注意咱們操做以前須要先開啓Redis數據庫,咱們上一篇文章《Redis的使用》裏面有告訴咱們如何安裝Redis數據庫,那咱們如今先打開一個 命令窗口,使用 cd 命令切換目錄到 redis 所在的目錄運行windows

redis-server.exe redis.windows.conf

這時候另啓一個命令窗口,原來的不要關閉,否則就沒法訪問服務端了,咱們先試一下可不可使用緩存

# 設置鍵值對:
set Angle 20

# 取出鍵值對:
get Angle 

# 設置鍵值對:
set class a

# 取出鍵值對:
get class

1、字符串類型string

咱們先經過例子看一下如何使用string類型數據學習

import redis
# 鏈接數據庫
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操做方法,用於設置給定 key 的值。若是 key 已經存儲其餘值, SET 就覆寫舊值,且無視類型;code

  • get()方法:單個string操做,用於獲取指定 key 的值,若是key不存在,返回nil,若是key儲存的值不是字符串類型,返回一個錯誤;server

  • decode()方法:這個你們應該都知道,用於解碼;htm

  • mset():多個string操做,用於同時設置一個或多個key-value對;

  • mget():多個string操做,返回全部給定key的值;

  • delete():刪除數據,能夠根據key來指定刪除數據;

2、列表類型list

import redis
client = redis.StrictRedis(host='localhost', port=6379, db=0)
  • lpush()方法:令將一個或多個值插入到列表頭部,若是 key 不存在,一個空列表會被建立並執行 LPUSH 操做,當 key存在但不是列表類型時,返回一個錯誤; 注意:在Redis 2.4版本之前的 LPUSH 命令,都只接受單個 value 值;
# 插入一個元素
result = client.lpush('lsts', 'name')
print(result)

# 建立列表
lsts = ('name', 'age', 'class', 'score')

# 插入多個元素
result = client.lpush('lsts', *lsts)
print(result)    # 4
  • lrange()方法:返回列表中指定區間內的元素,區間以偏移量START和END指定,其中0表示列表的第一個元素,1表示列表的第二個元素,以此類推,以-1表示列表的最後一個元素, -2表示列表的倒數第二個元素,以此類推;
# 先加入進入的元素在後面,後加入的元素在前面
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'

###3、集合類型set

import redis
client = redis.StrictRedis(host='localhost', port=6379, db=0)
  • sadd():將一個或多個成員元素加入到集合中,已經存在於集合的成員元素將被忽略;
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

###4、哈希類型hash

import redis
client = redis.StrictRedis(host='localhost', port=6379, db=0)
  • hset():用於爲哈希表中的字段賦值 ,若是哈希表不存在,一個新的哈希表被建立並進行HSET操做;
client.hset("hash1", "k1", "v1")
client.hset("hash1", "k2", "v2")
  • hkeys():用於獲取哈希表中的全部域(field);
print(client.hkeys("hash1"))    # [b'k1', b'k2']
  • hget():用於返回哈希表中指定字段的值;
print(client.hget("hash1", "k1"))     # b'v1'
  • hmget():用於返回哈希表中,一個或多個給定字段的值;
print(client.hmget("hash1", "k1", "k2"))    # [b'v1', b'v2']

###5、有序集合類型 sorted set

import redis
client = redis.StrictRedis(host='localhost', port=6379, db=0)
  • zadd(name, *args, **kwargs) :在name對應的有序集合中添加元素;
d = {'Join': '20'}
result = client.zadd("zset1", d)
print(result)  # 1
  • zcard(name):獲取name對應的有序集合元素的數量;
result = client.zcard("zset1")
print(result)
  • zcount(name, min, max):獲取name對應的有序集合中分數 在 [min,max] 之間的個數;
client.zcount("zset1", 0, 1)
  • zincrby(name, value, amount) :自增name對應的有序集合的 name 對應的分數;
print(client.zincrby("zset1", 1, '20'))

以上就是Redis的五大數據類型的基本用法的一些小實例,若是你們不懂的記得動手去嘗試喲,特別是每種類型的方法都有不少,你們能夠自行查看API~ 官網地址:https://redis-py.readthedocs.io/en/latest/

參考學習:https://www.9xkd.com/user/plan-view.html?id=1087797436

相關文章
相關標籤/搜索