此篇文章主要是詳細(xì)介紹了python使用redis控制模塊來(lái)和redis完成互動(dòng),文章內(nèi)容緊扣主題進(jìn)行詳盡的基本介紹,具有很強(qiáng)的實(shí)用價(jià)值,需用的朋友可以學(xué)習(xí)一下
redis模塊的使用
1.安裝模塊
pip3 install redis
2.導(dǎo)入模塊
import redis
3.接口方式
嚴(yán)苛連接模式:r=redis.StrictRedis(host=“”,port=)
更Python變的連接模式:r=redis.Redis(host=“”,port=)
StrictRedis用以完成絕大多數(shù)官方指令,并用官方詞匯和指令
Redis與StrictRedis的區(qū)別在于:Redis是StrictRedis的派生類,用以往前適配舊版的redis-py,而且這個(gè)接口方式是更"python化"的
4.連接池
為了節(jié)約網(wǎng)絡(luò)資源,降低數(shù)次聯(lián)接消耗,連接池的功效等同于總覽好幾個(gè)手機(jī)客戶端與服務(wù)器端連接,當(dāng)新手機(jī)客戶端需用聯(lián)接時(shí),只必須到連接池獲得1個(gè)聯(lián)接就可以,事實(shí)上就是一個(gè)連接共享給好幾個(gè)手機(jī)客戶端。
import redis pool=redis.ConnectionPool(host='localhost',port=6379,decode_responses=True) r=redis.Redis(connection_pool=pool) r2=redis.Redis(connection_pool=pool) r.set('apple','a') print(r.get('apple')) r2.set('banana','b') print(r.get('banana')) print(r.client_list()) print(r2.client_list())#可以看出兩個(gè)連接的id是一致的,說(shuō)明是一個(gè)客戶端連接
5.實(shí)際操作
系數(shù)的設(shè)定和獲得,可以參考一下redis的指令,redis控制模塊里的相匹配功能性的函數(shù)名基本和redis中的認(rèn)可
留意默認(rèn)設(shè)置前提下,設(shè)定的值或獲得數(shù)值均為bytes類型,如果要改成str種類,必須在聯(lián)接時(shí)加上上decode_responses=True】
設(shè)定值:
redis中set()==>r.set() redis中setnx()==>r.set() redis中setex()==>r.setex() redis中setbit()==>r.setbit() redis中mset()==>r.mset() redis中hset()==>r.hset() redis中sadd()==>r.sadd() #其他。。。基本redis的命令名與redis模塊中的函數(shù)名一致
獲取:
redis中g(shù)et()==》r.get() redis中mget()==》r.mget() redis中g(shù)etset()==》r.getset() redis中g(shù)etrange()==》r.getrange() #其他。。。基本redis的命令名與redis模塊中的函數(shù)名一致 import redis r=redis.Redis(host='localhost',port=6379,decode_responses=True) #r=redis.StrictRedis(host='localhost',port=6379) r.set('key','value') value=r.get('key') #print(type(value)) print(value) r.hset('info','name','lilei') r.hset('info','age','18') print(r.hgetall('info')) r.sadd('course','math','english','chinese') print(r.smembers('course'))
管道
一般情況下,執(zhí)行一條命令后必須等待結(jié)果才能輸入下一次命令,管道用于在一次請(qǐng)求中執(zhí)行多個(gè)命令。
參數(shù)介紹:
transaction:指示是否所有的命令應(yīng)該以原子方式執(zhí)行。
import redis,time r=redis.Redis(host="localhost",port=6379,decode_responses=True) pipe=r.pipeline(transaction=True) pipe.set('p1','v2') pipe.set('p2','v3') pipe.set('p3','v4') time.sleep(5) pipe.execute() 事務(wù) python中可以使用管道來(lái)代替事務(wù): 補(bǔ)充:監(jiān)視watch:pipe.watch() import redis,time import redis.exceptions r=redis.Redis(host='localhost',port=6379,decode_responses=True) pipe=r.pipeline() print(r.get('a')) try: #pipe.watch('a') pipe.multi() pipe.set('here','there') pipe.set('here1','there1') pipe.set('here2','there2') time.sleep(5) pipe.execute() except redis.exceptions.WatchError as e: print("Error") 訂閱發(fā)布 發(fā)布方: import redis r=redis.Redis(host="localhost",port=6379,decode_responses=True) #發(fā)布使用publish(self,channel,message):Publish``message``on``channel``. Flag=True while Flag: msg=input("主播請(qǐng)講話>>:") if len(msg)==0: continue elif msg=='quit': break else: r.publish('cctv0',msg)
訂閱方:
當(dāng)訂閱成功后,第一次接收返回的第一個(gè)消息是一個(gè)訂閱確認(rèn)消息:
import redis r=redis.Redis(host="localhost",port=6379,decode_responses=True) #發(fā)布使用publish(self,channel,message):Publish``message``on``channel``. Flag=True chan=r.pubsub()#返回一個(gè)發(fā)布/訂閱對(duì)象 msg_reciver=chan.subscribe('cctv0')#訂閱 msg=chan.parse_response()#第一次會(huì)返回訂閱確認(rèn)信息 print(msg) print("訂閱成功,開始接收------") while Flag: msg=chan.parse_response()#接收消息 print(">>:",msg[2])#此處的信息格式['消息類型','頻道','消息'],所以使用[2]來(lái)獲取
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)?lái)幫助。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/128725.html
摘要:月日,助力在北京舉辦全球最盛大的年度聚會(huì),國(guó)內(nèi)外頂尖的工程師做了很精彩的分享和互動(dòng),現(xiàn)場(chǎng)多名愛好者參與了此次技術(shù)主題盛宴。后續(xù)會(huì)有更多現(xiàn)場(chǎng)照片持續(xù)更新 11月15日,SegmentFault 助力PyCon China 在北京舉辦全球 Pythoneer 最盛大的年度聚會(huì),國(guó)內(nèi)外頂尖的Python 工程師做了很精彩的分享和互動(dòng),現(xiàn)場(chǎng)300多名python愛好者參與了此次技術(shù)主題盛宴。 ...
摘要:一介紹是宜信公司團(tuán)隊(duì)開發(fā)的一款數(shù)據(jù)庫(kù)審核產(chǎn)品,可幫助開發(fā)人員快速發(fā)現(xiàn)數(shù)據(jù)庫(kù)質(zhì)量問(wèn)題,提升工作效率。此平臺(tái)可實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)進(jìn)行多維度對(duì)象結(jié)構(gòu)文本執(zhí)行計(jì)劃及執(zhí)行特征的審核,用以評(píng)估對(duì)象結(jié)構(gòu)設(shè)計(jì)質(zhì)量及運(yùn)行效率。執(zhí)行計(jì)劃指數(shù)據(jù)庫(kù)中的執(zhí)行計(jì)劃。 一、介紹 Themis是宜信公司DBA團(tuán)隊(duì)開發(fā)的一款數(shù)據(jù)庫(kù)審核產(chǎn)品,可幫助DBA、開發(fā)人員快速發(fā)現(xiàn)數(shù)據(jù)庫(kù)質(zhì)量問(wèn)題,提升工作效率。其名稱源自希臘神話中的正義...
閱讀 919·2023-01-14 11:38
閱讀 891·2023-01-14 11:04
閱讀 750·2023-01-14 10:48
閱讀 2039·2023-01-14 10:34
閱讀 956·2023-01-14 10:24
閱讀 833·2023-01-14 10:18
閱讀 506·2023-01-14 10:09
閱讀 583·2023-01-14 10:02