日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
python中操作redis消息隊列
本篇文章為大家講解 Python 操作 redis具體方法,redis 是一個 Key-Value 數(shù)據(jù)庫,Value 支持 string(字符串),list(列表),set(集合),zset(有序集合),hash(哈希類型)等類型。

創(chuàng)新互聯(lián)專注于太白企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),成都做商城網(wǎng)站。太白網(wǎng)站建設(shè)公司,為太白等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站開發(fā),專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

Redis 服務(wù)

  1、安裝

  yum install redis

  2、 python安裝支持模塊

  /opt/python2.7.13/bin/pip install redis

  3、 和redis的簡單直接交互

  In [1]: import redis

  In [2]: rc = redis.Redis(host='192.168.8.237',port=6379,decode_responses=True)

  In [5]: rc.set('imoocc','jeson')

  Out[5]: True

  In [7]: rc.get('imoocc')

  Out[7]: u'jeson'

Redis簡單操作

對于和Redis的交互, Redis的類中提供了連接池的方式,我們可以通過連接池管理并操作Redis。

  1、連接池建立,利用連接池連接

  In [8]: connpool = redis.ConnectionPool(host='192.168.8.237',port=6379,decode_responses=True)

  In [9]: rc = redis.Redis(connection_pool=connpool)

  In [10]: rc.set('imooccp','1234566')

  Out[10]: True

  In [11]: rc.get('imooccp')

  Out[11]: u'1234566'

  2、redis中DB ,指定數(shù)據(jù)存取的DB

  redis.conf中設(shè)置了db的數(shù)量,那么redis的數(shù)據(jù)庫名也為0 到15,如下:

  databases 16

  指定使用那個數(shù)據(jù)庫名,我們通過如下的方式,就可以了:

  In [29]: connpool = redis.ConnectionPool(host='192.168.8.237',port=6379,decode_responses=True,db=3)

  In [30]: rc.set('test2','lllll')

  Out[30]: True

  這樣就將數(shù)據(jù)庫寫入到db3了,如何驗證呢?我們從服務(wù)端來認(rèn)證最直接,如下:

  用redis-cli(redis自帶的工具)登錄服務(wù)端,查看寫入的key。

  127.0.0.1:6379> SELECT 3

  OK

  127.0.0.1:6379[3]> KEYS * //查看db 3這個庫下所有的key

  1) "imooccc"

那么 接下來介紹redis詳細(xì)項目使用的內(nèi)容,大家不要覺得介紹的內(nèi)容擴散太大。

最近在作一個任務(wù)系統(tǒng),任務(wù)寫入是不定時的,我們需要用一個程序去定期消費這些任務(wù),必須是有先后順序的,而且是前一個任務(wù)確認(rèn)執(zhí)行完后,才會去執(zhí)行下一個。

怎么辦呢?用隊列啊,對吧!用什么隊列,怎么用?

介紹下為什么要用redis來作消息處理:

簡單說,redis支持兩種消費模式,一種發(fā)布-訂閱模式,及一個消息會被多個消費者處理(簡單說類似是一個廣播消息,所有人都會接收)。很明顯我得系統(tǒng)中不需要這么用,系統(tǒng)里邊就需要隊列模式,及先到的任務(wù)優(yōu)先處理。那么對隊列用什么類型得數(shù)據(jù)庫結(jié)構(gòu)來作呢?

先得聊聊list

list 這個數(shù)據(jù)類型,在python里是一個列表,在redis里就是一個有序隊列(或者說數(shù)據(jù)鏈表)了。

類型圖示如下:

大家看了這個結(jié)構(gòu)就可以清楚了,我們可以利用list的數(shù)據(jù)接口模式,設(shè)計從左端和右端都可以對list進(jìn)元素的同向處理(滿足隊列的特性先到先出)。

  1、從左端插入元素

  In [10]: rc.lpush('tasklist',1,2,3)

  Out[10]: 3L

  打印輸出內(nèi)容,如下:

  In [17]: print(rc.lrange('tasklist',0,2))

  [u'3', u'2', u'1']

  類似的從左測插入的方法還有l(wèi)pushx(name,value),區(qū)別只有當(dāng)name存在才將value插入到最左邊。

  2、從右邊插入元素

  In [21]: rc.rpush('tasklist','5')

  Out[21]: 5L

  In [22]: print(rc.lrange('tasklist',0,4))

  [u'4', u'3', u'2', u'1', u'5']

  3、從左邊取出元素怎么取呢?

  In [23]: rc.lpop("tasklist")

  Out[23]: u'4'

  In [24]: rc.lpop("tasklist")

  Out[24]: u'3'

  In [25]: print(rc.lrange('tasklist',0,4))

  [u'2', u'1', u'5']

  我們會看到從左側(cè)已經(jīng)取出了兩個元素了。剩下來[u'2', u'1', u'5']

  4、從右側(cè)呢?

  當(dāng)然就是rc.rpop()了

  python對于redis的基礎(chǔ)使用和Redis作為隊列的簡單使用就介紹這些,

  python的工程里邊如何更好封裝redis庫的連接和方法,

  及python很多的知識內(nèi)容,大家可以關(guān)注我,我將提供更多的內(nèi)容!

本文名稱:python中操作redis消息隊列
URL鏈接:http://www.5511xx.com/article/dhejise.html