前言
前面更新了python文法程式設計,從八個方面分别簡述了python3基礎入門,清單與元組,字元串,字典,條件丶循環和其他語句,函數,面向對象程式設計,異常與檔案處理,後面有講述了python并發程式設計,并且從網絡程式設計,多線程,多程序,協程等四方面展開,今天輪到講述python資料庫程式設計了。
python資料庫程式設計,我們将從三個方面展開分析
- MySQL資料庫
- Redis資料庫
- MongoDB資料庫
由于MySQL資料庫前面講過了,今天跳過直接來到第二篇:Redis資料庫
更多關注:
- 1.面試PDF+100道大廠面試
- 2.入門基礎教程
- 3.11子產品零基礎到精通筆記
- 4.百個項目實戰+爬蟲教程+代碼
- 5.量化交易,機器學習,深度學習
- 6.Python遊戲源碼
- 7.交流學習
關注+評論或者私信(python)免費擷取
python資料庫程式設計:Redis資料庫
一丶服務端和用戶端基本操作指令
Redis是一種基于記憶體的資料結構存儲系統,常用于緩存、消息隊列、排行榜等場景。下面介紹一些Redis服務端和用戶端的基本操作指令。
1.服務端指令
啟動Redis服務
redis-server
關閉Redis服務
redis-cli shutdown
檢視Redis服務狀态
redis-cli ping
檢視Redis服務版本
redis-cli info server
檢視Redis服務配置
redis-cli config get *
修改Redis服務配置
redis-cli config set <parameter> <value>
2.用戶端指令
連接配接Redis服務
redis-cli -h <host> -p <port> -a <password>
設定鍵值對
redis-cli set <key> <value>
擷取鍵值對
redis-cli get <key>
删除鍵值對
redis-cli del <key>
判斷鍵是否存在
redis-cli exists <key>
設定鍵的過期時間
redis-cli expire <key> <seconds>
檢視鍵的過期時間
redis-cli ttl <key>
檢視所有鍵
redis-cli keys *
檢視鍵的類型
redis-cli type <key>
清單操作
redis-cli lpush <key> <value> # 從左側插入元素
redis-cli rpush <key> <value> # 從右側插入元素
redis-cli lrange <key> <start> <stop> # 擷取清單元素
redis-cli lpop <key> # 從左側彈出元素
redis-cli rpop <key> # 從右側彈出元素
集合操作
redis-cli sadd <key> <value> # 添加元素
redis-cli smembers <key> # 擷取所有元素
redis-cli sismember <key> <value> # 判斷元素是否存在
redis-cli srem <key> <value> # 删除元素
哈希表操作
redis-cli hset <key> <field> <value> # 設定字段值
redis-cli hget <key> <field> # 擷取字段值
redis-cli hgetall <key> # 擷取所有字段和值
redis-cli hdel <key> <field> # 删除字段
有序集合操作
redis-cli zadd <key> <score> <value> # 添加元素
redis-cli zrange <key> <start> <stop> # 擷取元素
redis-cli zrem <key> <value> # 删除元素
以上是Redis服務端和用戶端的基本操作指令,更多指令可以參考Redis官方文檔。
二丶資料操作
1.string
Redis是一種基于記憶體的資料存儲系統,支援多種資料結構,其中之一就是string。在Python中,我們可以使用redis-py庫來操作Redis資料庫中的string資料類型。
以下是一些常用的Redis string操作指令:
①.set(key, value):設定key對應的value值
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
r.set('name', 'Tom')
②.get(key):擷取key對應的value值
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
name = r.get('name')
print(name)
③.mset(mapping):批量設定多個key-value對
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
r.mset({'name': 'Tom', 'age': 18})
④.mget(keys):批量擷取多個key對應的value值
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
values = r.mget(['name', 'age'])
print(values)
⑤.incr(key, amount=1):将key對應的value值增加amount
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
r.set('count', 1)
r.incr('count')
⑥.decr(key, amount=1):将key對應的value值減少amount
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
r.set('count', 10)
r.decr('count', 5)
⑦.append(key, value):将value追加到key對應的value值的末尾
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
r.set('name', 'Tom')
r.append('name', ' Smith')
⑧.strlen(key):擷取key對應的value值的長度
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
name_len = r.strlen('name')
print(name_len)
以上是Redis string資料類型的一些基本操作指令,可以根據實際需求進行使用。
2.鍵指令
Redis中的鍵指令用于管理和操作鍵值對。以下是一些常用的鍵指令:
- SET key value:設定鍵值對,如果鍵已經存在,則覆寫原有的值。
- GET key:擷取鍵對應的值。
- DEL key:删除指定的鍵值對。
- EXISTS key:檢查指定的鍵是否存在。
- KEYS pattern:查找所有符合給定模式的鍵。
- TTL key:擷取鍵的過期時間,機關為秒。
- EXPIRE key seconds:設定鍵的過期時間,機關為秒。
- PERSIST key:移除鍵的過期時間,使其永久有效。
- TYPE key:擷取鍵對應的值的資料類型。
這些指令可以通過Python Redis子產品中的對應方法來調用,例如:
import redis
# 連接配接Redis資料庫
r = redis.Redis(host='localhost', port=6379, db=0)
# 設定鍵值對
r.set('name', 'Alice')
# 擷取鍵對應的值
name = r.get('name')
print(name)
# 删除指定的鍵值對
r.delete('name')
# 檢查指定的鍵是否存在
exists = r.exists('name')
print(exists)
# 查找所有符合給定模式的鍵
keys = r.keys('*')
print(keys)
# 擷取鍵的過期時間
ttl = r.ttl('name')
print(ttl)
# 設定鍵的過期時間
r.expire('name', 60)
# 移除鍵的過期時間
r.persist('name')
# 擷取鍵對應的值的資料類型
type = r.type('name')
print(type)
3.hash
在 Redis 中,Hash 是一個鍵值對集合,其中鍵和值都是字元串類型。Hash 可以用于存儲對象,例如使用者資訊、商品資訊等。
以下是 Python Redis 操作 Hash 的一些常用指令:
①.HSET(key, field, value):設定 Hash 中指定字段的值
redis_conn.hset('user:1', 'name', 'Alice')
②.HGET(key, field):擷取 Hash 中指定字段的值
redis_conn.hget('user:1', 'name')
③.HMSET(key, mapping):設定 Hash 中多個字段的值
redis_conn.hmset('user:1', {'age': 20, 'gender': 'female'})
④.HMGET(key, fields):擷取 Hash 中多個字段的值
redis_conn.hmget('user:1', 'name', 'age', 'gender')
⑤.HGETALL(key):擷取 Hash 中所有字段和值
redis_conn.hgetall('user:1')
⑥.HDEL(key, field):删除 Hash 中指定字段
redis_conn.hdel('user:1', 'gender')
⑦.HEXISTS(key, field):判斷 Hash 中是否存在指定字段
redis_conn.hexists('user:1', 'gender')
⑧.HKEYS(key):擷取 Hash 中所有字段
redis_conn.hkeys('user:1')
⑨.HVALS(key):擷取 Hash 中所有值
redis_conn.hvals('user:1')
⑩.HLEN(key):擷取 Hash 中字段的數量
redis_conn.hlen('user:1')
以上是 Python Redis 操作 Hash 的一些常用指令,可以根據實際需求選擇使用。
4.list
Redis中的List是一個雙向連結清單,支援在頭部和尾部進行插入和删除操作。List中的每個元素都是一個字元串。
Python中可以使用redis-py庫來操作Redis資料庫中的List資料類型。
首先需要導入redis庫:
import redis
連接配接Redis資料庫:
r = redis.Redis(host='localhost', port=6379, db=0)
List操作
①. 插入元素
在List的頭部插入一個或多個元素:
r.lpush('list_key', 'value1', 'value2', 'value3')
在List的尾部插入一個或多個元素:
r.rpush('list_key', 'value4', 'value5', 'value6')
在指定元素前或後插入一個元素:
r.linsert('list_key', 'BEFORE', 'value2', 'new_value')
r.linsert('list_key', 'AFTER', 'value2', 'new_value')
②. 擷取元素
擷取List中指定範圍内的元素:
r.lrange('list_key', 0, -1) # 擷取所有元素
r.lrange('list_key', 0, 2) # 擷取前三個元素
r.lrange('list_key', -3, -1) # 擷取後三個元素
擷取List中指定索引的元素:
r.lindex('list_key', 0) # 擷取第一個元素
r.lindex('list_key', -1) # 擷取最後一個元素
③. 删除元素
從List的頭部删除一個元素:
r.lpop('list_key')
從List的尾部删除一個元素:
r.rpop('list_key')
删除List中指定的元素:
r.lrem('list_key', 0, 'value2') # 删除所有值為value2的元素
r.lrem('list_key', 1, 'value2') # 删除第一個值為value2的元素
r.lrem('list_key', -1, 'value2') # 删除最後一個值為value2的元素
④. 其他操作
擷取List的長度:
r.llen('list_key')
将List中的最後一個元素移動到另一個List的頭部:
r.rpoplpush('list_key', 'new_list_key')
阻塞式地從一個List的尾部彈出一個元素,并将其插入到另一個List的頭部:
r.brpoplpush('list_key', 'new_list_key', timeout=0)
以上就是Python中操作Redis資料庫中List資料類型的常用方法。
5.set
Redis中的Set是一個無序的集合,它的作用和List類似,都是用來存儲多個字元串元素的集合。但是Set不同于List的是,Set中不允許出現重複的元素,而且Set中的元素是無序的。
Python中操作Redis的Set可以使用redis子產品中的set方法。下面是一些常用的Set操作:
①.添加元素
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
# 添加單個元素
r.sadd('set_key', 'value1')
# 添加多個元素
r.sadd('set_key', 'value2', 'value3', 'value4')
②.擷取元素
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
# 擷取所有元素
members = r.smembers('set_key')
print(members)
# 判斷元素是否存在
is_member = r.sismember('set_key', 'value1')
print(is_member)
③.删除元素
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
# 删除單個元素
r.srem('set_key', 'value1')
# 删除多個元素
r.srem('set_key', 'value2', 'value3', 'value4')
# 删除集合
r.delete('set_key')
④.集合運算
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
# 求交集
r.sadd('set_key1', 'value1', 'value2', 'value3')
r.sadd('set_key2', 'value2', 'value3', 'value4')
intersection = r.sinter('set_key1', 'set_key2')
print(intersection)
# 求并集
union = r.sunion('set_key1', 'set_key2')
print(union)
# 求差集
difference = r.sdiff('set_key1', 'set_key2')
print(difference)
6.zset
在 Redis 中,ZSET(有序集合)是一種特殊的資料結構,它是一個鍵值對集合,其中每個元素都關聯着一個浮點數分數。這個分數被用來按照從最小值到最大值的順序排序元素。ZSET 的成員是唯一的,但分數(score)卻可以重複。
Python Redis 操作有序集合的方法:
①.添加元素 使用 zadd 指令向有序集合中添加元素,文法如下:
zadd(name, mapping)
其中,name 是有序集合的名稱,mapping 是一個字典,表示要添加的元素和它們的分數。例如:
redis.zadd('myzset', {'one': 1, 'two': 2, 'three': 3})
②.擷取元素 使用 zrange 指令擷取有序集合中指定範圍内的元素,文法如下:
zrange(name, start, end, withscores=False)
其中,name 是有序集合的名稱,start 和 end 分别表示要擷取的元素的起始位置和結束位置(從 0 開始計數),withscores 表示是否同時傳回元素的分數。例如:
redis.zrange('myzset', 0, -1, withscores=True)
③.擷取元素數量 使用 zcard 指令擷取有序集合中元素的數量,文法如下:
zcard(name)
其中,name 是有序集合的名稱。例如:
redis.zcard('myzset')
④.擷取元素排名 使用 zrank 指令擷取有序集合中指定元素的排名,文法如下:
zrank(name, value)
其中,name 是有序集合的名稱,value 是要擷取排名的元素。例如:
redis.zrank('myzset', 'two')
⑤.擷取元素分數 使用 zscore 指令擷取有序集合中指定元素的分數,文法如下:
zscore(name, value)
其中,name 是有序集合的名稱,value 是要擷取分數的元素。例如:
redis.zscore('myzset', 'two')
⑥.删除元素 使用 zrem 指令從有序集合中删除指定的元素,文法如下:
zrem(name, values)
其中,name 是有序集合的名稱,values 是要删除的元素。例如:
redis.zrem('myzset', 'two')
⑦.擷取指定分數範圍内的元素 使用 zrangebyscore 指令擷取有序集合中指定分數範圍内的元素,文法如下:
zrangebyscore(name, min, max, start=None, num=None, withscores=False, score_cast_func=float)
其中,name 是有序集合的名稱,min 和 max 分别表示要擷取的分數範圍的最小值和最大值,start 和 num 分别表示要擷取的元素的起始位置和數量(從 0 開始計數),withscores 表示是否同時傳回元素的分數,score_cast_func 表示分數的類型轉換函數。例如:
redis.zrangebyscore('myzset', 1, 2, withscores=True)
三丶python操作Redis
1.Redis庫
Redis是一個開源的記憶體資料結構存儲系統,它支援多種資料結構,包括字元串、哈希、清單、集合和有序集合等。Redis的特點是速度快、可靠性高、支援豐富的資料結構和操作,是以被廣泛應用于緩存、消息隊列、計數器、排行榜等場景。
Python是一種進階程式設計語言,它具有簡單易學、代碼簡潔、可讀性強等特點,是以被廣泛應用于Web開發、資料分析、人工智能等領域。Python提供了多種Redis用戶端庫,可以友善地操作Redis資料庫。
Python操作Redis需要先安裝Redis用戶端庫,常用的有redis-py、redis、hiredis等。其中redis-py是Redis官方推薦的Python用戶端庫,支援Python 2和Python 3,提供了豐富的API,使用友善。
安裝redis-py庫可以使用pip指令:
pip install redis
安裝完成後,就可以在Python中使用redis-py庫操作Redis資料庫了。下面是一個簡單的示例:
import redis
# 連接配接Redis資料庫
r = redis.Redis(host='localhost', port=6379, db=0)
# 設定鍵值對
r.set('name', 'Tom')
# 擷取鍵值對
name = r.get('name')
print(name)
在上面的示例中,首先使用redis.Redis()方法連接配接Redis資料庫,然後使用r.set()方法設定鍵值對,使用r.get()方法擷取鍵值對。其中,host參數指定Redis伺服器的IP位址,port參數指定Redis伺服器的端口号,db參數指定Redis資料庫的編号。如果沒有指定db參數,則預設使用編号為0的資料庫。
除了set()和get()方法,redis-py庫還提供了多種操作Redis資料庫的方法,包括incr()、decr()、hset()、hget()、lpush()、rpush()、lrange()、sadd()、smembers()、zadd()、zrange()等
連接配接Redis資料庫:
import redis
# 連接配接Redis資料庫
r = redis.Redis(host='localhost', port=6379, db=0)
設定鍵值對:
# 設定鍵值對
r.set('name', 'Tom')
擷取鍵值對:
# 擷取鍵值對
name = r.get('name')
print(name)
删除鍵值對:
# 删除鍵值對
r.delete('name')
設定過期時間:
# 設定過期時間
r.setex('name', 10, 'Tom') # 10秒後過期
判斷鍵是否存在:
# 判斷鍵是否存在
if r.exists('name'):
print('name exists')
else:
print('name does not exist')
自增自減:
# 自增
r.incr('count')
# 自減
r.decr('count')
以上是Redis庫的基本操作
2.python-redis對string類型的操作
Redis是一種記憶體鍵值對存儲資料庫,支援不同類别的資料類型,其中之一是string類型。字元串類型是Redis中最基本的資料類型。下面是一些操作Redis中String類型的基本操作:
①.設定String
我們可以使用set()方法設定String。如果鍵不存在,則建立一個新鍵并存儲字元串值。如果鍵已經存在則覆寫該鍵的舊值。例如:
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
r.set('key', 'value')
這将在Redis中建立一個名為“key”的鍵,并将其值設定為“value”。
②.擷取String
我們可以使用get()方法來擷取String的值。例如:
value = r.get('key')
這将傳回名為“key”的鍵的目前值。
③.删除String
我們可以使用delete()方法來删除String。例如:
r.delete('key')
這将删除名為“key”的鍵。
④.操作String
Redis還提供了許多其他操作String的方法,例如:
- append(key, value):将value附加到key的末尾。
- incr(key[, amount]):遞增名為“key”的鍵的值,可加+1或加自定義數值amount。
- decr(key[, amount]):遞減名為“key”的鍵的值,可減-1或減自定義數值amount。
- setnx(key, value):僅在鍵“key”不存在時設定鍵的值為“value”。
- getset(key, value):将鍵“key”的值設定為“value”,并傳回鍵“key”之前的值。
例如,增加"in_stock"鍵的值2:
r.set("in_stock",10)
r.incr("in_stock",2)
print(r.get("in_stock"))
這将傳回12,因為"in_stock"鍵的值從10增加了2。
這是Redis中一些對String類型基本的操作,我們還可以使用其他方法,根據具體應用需求進行選擇和使用。
下章講:python資料庫程式設計:MongoDB資料庫
更多關注:
- 1.面試PDF+100道大廠面試
- 2.入門基礎教程
- 3.11子產品零基礎到精通筆記
- 4.百個項目實戰+爬蟲教程+代碼
- 5.量化交易,機器學習,深度學習
- 6.Python遊戲源碼
- 7.交流學習
關注+評論或者私信(python)免費擷取
#python程式設計小知識##python自學##python自學##python打卡##每天學python#