欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python模塊對Redis數(shù)據(jù)庫的連接與使用講解

 更新時間:2021年07月30日 11:38:19   作者:K_Q  
這篇文章主要介紹了Python模塊對Redis數(shù)據(jù)庫的連接與使用,通過實例代碼給大家介紹了Python連接Redis數(shù)據(jù)庫方法,Python使用連接池連接Redis數(shù)據(jù)庫方法,感興趣的朋友跟隨小編一起看看吧

下面看看Python模塊對Redis數(shù)據(jù)庫的連接與使用:

​ 1.Python連接Redis數(shù)據(jù)庫方法:

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()參數(shù)講解:

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

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

​ 3.db:表示使用的數(shù)據(jù)庫的標號。

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

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

​ 2.Python使用連接池連接Redis數(shù)據(jù)庫:

  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"))

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

​ 連接成功后,下面就是使用Python對redis數(shù)據(jù)庫的操作:

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

​ 1.res.set()函數(shù):

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

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

​ ex,px表示數(shù)據(jù)過期時間,ex是以秒作為單位,px是以毫秒作為單位。當(dāng)數(shù)據(jù)過期時鍵依舊存在,值變?yōu)镹one。

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

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

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

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

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

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

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

​ 2.res.strlen(“鍵”) 返回鍵對應(yīng)的值的字節(jié)長度。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

​ 3.獲取集合內(nèi)的數(shù)據(jù)數(shù)量:res.scard(“集合名”)

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

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

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

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

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

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

​ 3.模糊匹配:

KEYS * 				匹配數(shù)據(jù)庫中所有 key 。
        KEYS h?llo 			匹配 hello , hallo 和 hxllo 等。
        KEYS hllo 			匹配 hllo 和 heeeeello 等。
        KEYS h[ae]llo		匹配 hello 和 hallo ,但不匹配 hillo
        
        上述為終端命令,下面是Python語法:
        
        res.keys()					匹配數(shù)據(jù)庫中所有 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.查看當(dāng)前數(shù)據(jù)庫中包含多少條數(shù)據(jù):res.dbsize()

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

​ 11.清空數(shù)據(jù)庫的所有數(shù)據(jù):res.flushdb()

管道(pipeline):

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

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

​ 管道操作:

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

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

​ 上述代碼可以簡化為:

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

到此這篇關(guān)于Python模塊對Redis數(shù)據(jù)庫的連接與使用的文章就介紹到這了,更多相關(guān)Python Redis連接與使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺析Python 實現(xiàn)一個自動化翻譯和替換的工具

    淺析Python 實現(xiàn)一個自動化翻譯和替換的工具

    這篇文章主要介紹了Python 實現(xiàn)一個自動化翻譯和替換的工具,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • 基于Python+OpenCV制作屏幕錄制工具

    基于Python+OpenCV制作屏幕錄制工具

    這篇文章主要介紹了如何利用Python?OpenCV實現(xiàn)屏幕錄制工具的制作,文中的示例代碼講解詳細,對我們的學(xué)習(xí)和工作有一定的價值,感興趣的可以學(xué)習(xí)一下
    2022-01-01
  • pytest?fixtures函數(shù)及測試函數(shù)的參數(shù)化解讀

    pytest?fixtures函數(shù)及測試函數(shù)的參數(shù)化解讀

    這篇文章主要介紹了pytest?fixtures函數(shù)及測試函數(shù)的參數(shù)化解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • python Tornado框架詳解

    python Tornado框架詳解

    Tornado是一個 Python Web框架,用于開發(fā)高性能網(wǎng)絡(luò)應(yīng)用程序,本文給大家詳細介紹python Tornado框架的相關(guān)知識,感興趣的朋友一起看看吧
    2024-03-03
  • python知識:裝飾器@property到底有啥用途

    python知識:裝飾器@property到底有啥用途

    這篇文章主要介紹了python裝飾器@property到底有啥用途,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 教你用Python讀取CSV文件的5種方式

    教你用Python讀取CSV文件的5種方式

    一個股票的數(shù)據(jù)集,其實就是常見的表格數(shù)據(jù),有自己的頭部和身體,這篇文章主要介紹了用Python讀取CSV文件的5種方式,通過五招給大家介紹的非常詳細,需要的朋友可以參考下
    2021-11-11
  • Python?3行代碼提取音樂高潮部分

    Python?3行代碼提取音樂高潮部分

    這篇文章主要介紹了利用Python代碼提取音樂高潮部分,文章圍繞Python代碼的相關(guān)詳情展開提取音樂的內(nèi)容,需要的小伙伴可以參考一下
    2022-01-01
  • python中eval與int的區(qū)別淺析

    python中eval與int的區(qū)別淺析

    這篇文章主要給大家介紹了關(guān)于python中eval與int的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • PyQt5筆記之彈出窗口大全

    PyQt5筆記之彈出窗口大全

    今天小編就為大家分享一篇PyQt5筆記之彈出窗口大全,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • python中tkinter的應(yīng)用:修改字體的實例講解

    python中tkinter的應(yīng)用:修改字體的實例講解

    今天小編就為大家分享一篇python中tkinter的應(yīng)用:修改字體的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07

最新評論