中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python模塊對Redis數據庫的連接與使用方法介紹

發布時間:2021-07-30 14:36:05 來源:億速云 閱讀:455 作者:chen 欄目:開發技術

這篇文章主要講解了“Python模塊對Redis數據庫的連接與使用方法介紹”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python模塊對Redis數據庫的連接與使用方法介紹”吧!

下面看看Python模塊對Redis數據庫的連接與使用:

1.Python連接Redis數據庫方法:

import redis

    res = redis.Redis(	
    			host="127.0.0.1",
                port=6379,
                db=0,
                password="XXXXXX",
                decode_responses=True
    	)
    res.set("name","Li")

    print(res.get("name"))

redis.Redis()參數講解:

1.host:表示連接的主機的iP地址。

2.port:表示連接的端口。

3.db:表示使用的數據庫的標號。

4.password:表示連接的數據庫的密碼。沒有不添加該參數即可。

5.decode_responses:我們從redis數據庫中取出的數據默認為字節類型,加上該參數則將取出的數據默認為字符串類型。

2.Python使用連接池連接Redis數據庫:

  import redis

        connection = redis.ConnectionPool(
        		host="127.0.0.1",
        		port=6379,
        		password="XXXXXX",
        		decode_responses=True
        	)
        res = redis.StrictRedis(connection_pool=connection)
        res.set("name","666")

        print(res.get("name"))

這里使用連接池的作用可以減少中間消耗的時間,當我們這里用完這個連接后將他再次放回連接池中,別的實例使用可以直接使用而不需要重新連接數據庫,這樣就大幅度的減少了的中間消耗的時間。

連接成功后,下面就是使用Python對redis數據庫的操作:

對字符串(String)內部的操作:

1.res.set()函數:

res.set("name","666",ex=m,px=n,nx=True,xx=True)

這里后四個參數中,ex與px不能共存,nx與xx也不能共存。

ex,px表示數據過期時間,ex是以秒作為單位,px是以毫秒作為單位。當數據過期時鍵依舊存在,值變為None。

nx與xx表示數據插入數據庫的鍵的狀態,nx(新建)為True表示當鍵不存在時set操作的返回值為True,且新建數據;而xx(修改)為True表示在鍵存在時set操作返回值為True,且修改數據。否則上述操作返回None。

**故上述操作衍生出的新函數:res.setex(“鍵”,過期時間(秒),“值”) **

res.setnx(“鍵”,“值”) 鍵不存在,返回True并新建。

res.psetex(“鍵”,過期時間(毫秒),“值”)

res.mset({“鍵”:“值”,…}) 批量添加鍵-值數據。

res.mset(“鍵”,“鍵”,…) 批量增加鍵數據。

res.getset(“鍵”,“值”) 修改為新值并返回原值。

2.res.strlen(“鍵”) 返回鍵對應的值的字節長度。

3.res.incr(“鍵”,amount=自增的步長) 不存在則創建,否則自增。

res.decr(“鍵”,amount=自減的步長) 不存在則創建,否則自減。

res.incrbyfloat(“鍵”,amount=自增的步長(浮點型))

4.res.append(“鍵”,“值”) 將值追加在鍵對應的值 的 原始字符串后邊。

對哈希表(Hash)內部的操作:

1.單個增加:res.hset(“Hash表名”,“鍵”,“值”)

2.批量增加:res.hmset(“Hash表名”,{“鍵值對”…})

3.單個取出:res.hget(“Hash表名”,“鍵”)

4.多個取出:res.hmget(“Hash表名”,“鍵”,“鍵”,…)

5.只能新建的方法:res.hsetnx(“Hash表名”,“鍵”,“值”) 當沒有時才起新建得作用。

6.取出hash中的全部鍵值對:res.hgetall(“Hash表名”)

7.得到hash中的hash長度(即hash中的鍵值對個數):res.hlen(“Hash表名”)

8.得到hash中的所有的鍵:res.hkeys(“Hash表名”)

得到hash中的所有的值:res.hvals(“Hash表名”)

9.判斷hash中是否存在該成員:res.hexists(“Hash表名”,“鍵”)

10.刪除hash中的鍵值對:hdel(“Hash表名”,“鍵”)

對列表(List)內部的操作:

1.列表的添加操作: 從左向右添加: res.lpush(“List表名”,“值”,…)

從右向左添加:res.rpush(“List列表”,“值”,…)

這兩種方式如果沒有該列表就創建,res.l/rpushx()如果沒有不創建,且不插入

2.向固定的索引號位置插入元素:res.linsert(“表名”,“位置”,“將需要插入的元素插入到 ‘該元素' 之前的索引位置(m)”,“被插入的元素(n)”)

例如:res.linsert(“list2”, “before”, “11”, “00”) 往列表中左邊第一個出現的“m”元素前插入元素"n"。

3.修改(指定索引號進行修改):res.lset(“表名”, index, “值”)

4.刪除指定索引的值:res.lrem(“表名”, “值”,矢量刪除數(正左負右0全部))

5.res.l/rpop(“表名”),移除表中的左/右邊的第一個數據并將值返回。

6.取值:res.lindex(“表名”,index)

對集合(Set)內部的操作:

1.增加數據:res.sadd(“集合名”,“值”)

2.獲取集合的全部成員:res.smembers(“集合名”)

3.獲取集合內的數據數量:res.scard(“集合名”)

4.以元組格式獲取集合的全部成員:res.sscan(“集合名”)

5.判斷值是不是集合的成員:res.sismember(“集合名”,“值”)

6.刪除指定的值:res.srem(“集合名”,“值”)

對集合,列表,字符串,哈希的操作:

1.刪除:res.delete(“鍵”) 刪除該鍵的數據,不受表類型的約束。

2.檢查名字是否存在:exists(“表名”)

3.模糊匹配:

KEYS * 				匹配數據庫中所有 key 。
        KEYS h?llo 			匹配 hello , hallo 和 hxllo 等。
        KEYS hllo 			匹配 hllo 和 heeeeello 等。
        KEYS h[ae]llo		匹配 hello 和 hallo ,但不匹配 hillo
        
        上述為終端命令,下面是Python語法:
        
        res.keys()					匹配數據庫中所有 key 。
        res.keys("h?llo")			匹配 hello , hallo 和 hxllo 等。
        res.keys("hllo")			匹配 hllo 和 heeeeello 等。
        res.keys("h[ae]llo")		匹配 hello 和 hallo ,但不匹配 hillo

4.表級重命名:res.rename(“原名”,“新名”)

5.獲取表級的類型:res.type(“表名”)

6.查看所有元素:res.scan(“表名”)

7.查看所有元素并生成迭代器:res.scan_iter(“表名”)

8.獲取值:res.get(“鍵”)

9.查看當前數據庫中包含多少條數據:res.dbsize()

10.將數據寫回磁盤,保存時阻塞:res.save()

11.清空數據庫的所有數據:res.flushdb()

管道(pipeline):

redis默認在執行每次請求都會創建(連接池申請連接)和斷開(歸還連接池)一次連接操作,如果想要在一次請求中指定多個命令,則可以使用pipline實現一次請求指定多個命令,并且默認情況下一次pipline 是原子性操作。

管道(pipeline)是redis在提供單個請求中緩沖多條服務器命令的基類的子類。它通過減少服務器-客戶端之間反復的TCP數據庫包,從而大大提高了執行批量命令的功能。

管道操作:

 pipe = res.pipeline() # 創建一個管道

        pipe.set('name', 123)
        pipe.set('role', 456)
        pipe.incr('num')    # 如果num不存在則vaule為1,如果存在,則value自增1。
        pipe.execute()      # 無論多少操作最后都需要提交,類似于MySQL的事務。

上述代碼可以簡化為:

pipe = res.pipeline() # 創建一個管道
	
		pipe.set('name', 123).set('role', 456).incr('num').execute()

感謝各位的閱讀,以上就是“Python模塊對Redis數據庫的連接與使用方法介紹”的內容了,經過本文的學習后,相信大家對Python模塊對Redis數據庫的連接與使用方法介紹這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

张北县| 洪泽县| 甘泉县| 登封市| 永丰县| 南和县| 贡觉县| 潜山县| 宝山区| 双牌县| 遂昌县| 汉阴县| 余干县| 板桥市| 建始县| 永宁县| 扎赉特旗| 昭觉县| 盘锦市| 舞阳县| 兴城市| 土默特右旗| 甘肃省| 喀喇沁旗| 南昌县| 始兴县| 自贡市| 新宾| 南江县| 南溪县| 白山市| 温泉县| 永仁县| 温州市| 诸暨市| 和平区| 开平市| 高碑店市| 安达市| 阿坝县| 沁水县|