最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于python實(shí)現(xiàn)操作redis及消息隊(duì)列

 更新時(shí)間:2020年08月27日 09:30:39   作者:295631788  
這篇文章主要介紹了基于python操作redis及消息隊(duì)列,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

操作 redis

import redis
redisPool = redis.ConnectionPool(host='192.168.100.50', port=6379, db=8)
redis= redis.Redis(connection_pool=redisPool)

redis.set('key','values')
redis.get('com')
redis.append('keys','values')
redis.delete('keys')

print(redis.getset('name','Mike')) #賦值name為Mike并返回上一次的value
print(redis.mget(['name','age']))  #輸出name鍵和age鍵的value
print(redis.setnx('newname','james')) #如果鍵值不存在,則賦值
print(redis.mset({'name1':'smith','name2':'curry'})) #批量賦值
print(redis.msetnx({'name3':'ltf','name4':'lsq'}))  #不存在才批量賦值
print(redis.incr('age',1))  #age對(duì)應(yīng)的value 加1
print(redis.decr('age',5))  #age對(duì)應(yīng)的value 減5
print(redis.append('name4','is a sb'))  #在name4的value后追加 is a sb 返回字符串長(zhǎng)度
print(redis.substr('name',1,4))  #截取鍵 name

print(redis.sadd('tags','Book','Tea','Coffee')) #返回集合長(zhǎng)度 3
print(redis.srem('tags','Book')) #返回刪除的數(shù)據(jù)個(gè)數(shù)
print(redis.spop('tags'))  #隨機(jī)刪除并返回該元素
print(redis.smove('tags','tags1','Coffee'))
print(redis.scard('tags')) # 獲取tags集合的元素個(gè)數(shù)
print(redis.sismember('tags', 'Book')) # 判斷Book是否在tags的集合中
print(redis.sinter('tags', 'tags1')) # 返回集合tags和集合tags1的交集
print(redis.sunion('tags', 'tags1')) # 返回集合tags和集合tags1的并集
print(redis.sdiff('tags', 'tags1')) # 返回集合tags和集合tags1的差集
print(redis.smembers('tags')) # 返回集合tags的所有元素

print(redis.hset('price','cake',5)) # 向鍵名為price的散列表添加映射關(guān)系,返回1 即添加的映射個(gè)數(shù)
print(redis.hsetnx('price','book',6)) # 向鍵名為price的散列表添加映射關(guān)系,返回1 即添加的映射個(gè)數(shù)
print(redis.hget('price', 'cake')) # 獲取鍵名為cake的值 返回5
print(redis.hmset('price',{'banana':2,'apple':3,'pear':6,'orange':7}))  #批量添加映射
print(redis.hmget('price', ['apple', 'orange'])) # 查詢(xún)apple和orange的值 輸出 b'3',b'7'
print(redis.hincrby('price','apple',3))  #apple映射加3 為6
print(redis.hexists('price', 'banana')) # 在price中banana是否存在 返回True
print(redis.hdel('price','banana'))  #從price中刪除banana 返回1
print(redis.hlen('price')) # 輸出price的長(zhǎng)度
print(redis.hkeys('price')) # 輸出所有的映射鍵名
print(redis.hvals('price')) # 輸出所有的映射鍵值
print(redis.hgetall('price')) # 輸出所有的映射鍵對(duì)

print(redis.rpush('list',1,2,3)) #向鍵名為list的列表尾部添加1,2,3 返回長(zhǎng)度
print(redis.lpush('list',0))  #向鍵名為list的列表頭部添加0 返回長(zhǎng)度
print(redis.llen('list'))  #返回列表的長(zhǎng)度
print(redis.lrange('list',1,3)) #返回起始索引為1 終止索引為3的索引范圍對(duì)應(yīng)的列表
print(redis.lindex('list',1))  #返回索引為1的元素-value
print(redis.lset('list',1,5)) #將list的列表索引為1的重新賦值為5
print(redis.lpop('list')) #刪除list第一個(gè)元素
print(redis.rpop('list'))  #刪除list最后一個(gè)元素
print(redis.blpop('list'))  #刪除list第一個(gè)元素
print(redis.brpop('list'))  #刪除最后一個(gè)元素
print(redis.rpoplpush('list','list1'))  #刪除list的尾元素并將其添加到list1的頭部

消息隊(duì)列使用例子

import redis
import json
redisPool = redis.ConnectionPool(host='192.168.100.50', port=6379, db=8)
client = redis.Redis(connection_pool=redisPool)

# 順序插入五條數(shù)據(jù)到redis隊(duì)列,sort參數(shù)是用來(lái)驗(yàn)證彈出的順序
while True:
  num = 0
  for i in range(0, 100):
    num = num + 1
    # params info
    params_dict = {"name": f"test {num}", "sort":num}

    client.rpush("test", json.dumps(params_dict))

  # 查看目標(biāo)隊(duì)列數(shù)據(jù)
  result = client.lrange("test", 0, 100)
  print(result)
  import time
  time.sleep(10)
import redis
import time
import multiprocessing
import time
import os
import random

redisPool = redis.ConnectionPool(host='192.168.100.50', port=6379, db=8)
client = redis.Redis(connection_pool=redisPool)

def test1(msg):
  t_start = time.time()
  print("%s開(kāi)始執(zhí)行,進(jìn)程號(hào)為%d" % (msg, os.getpid()))
  time.sleep(random.random() * 2)
  t_stop = time.time()
  print("%s執(zhí)行完成,耗時(shí)%.2f" % (msg, t_stop - t_start))

while True:
  number = client.llen('test')
  print("現(xiàn)在的隊(duì)列任務(wù) 條數(shù)是 ", number)
  p = 100
  if number > p-1:
    print("-----start-----")
    a = []
    for i in range(p):
      result = client.lpop("test")
      a.append(result)
    print("每10條讀取一次", a)
    po = multiprocessing.Pool(p)
    for i in range(0, p):
      # Pool().apply_async(要調(diào)用的目標(biāo),(傳遞給目標(biāo)的參數(shù)元祖,))
      # 每次循環(huán)將會(huì)用空閑出來(lái)的子進(jìn)程去調(diào)用目標(biāo)
      po.apply_async(test1, (a[i],))
    po.close() # 關(guān)閉進(jìn)程池,關(guān)閉后po不再接收新的請(qǐng)求
    po.join() # 等待po中所有子進(jìn)程執(zhí)行完成,必須放在close語(yǔ)句之后
    print("-----end-----")
    time.sleep(2)
  elif number < p and number > 0:
    print("-----start-----")
    a = []
    for i in range(number):
      a = []
      result = client.lpop("test")
      a.append(result)
    print("小于10條的 讀取一次 ", a)
    po = multiprocessing.Pool(number)
    for i in a:
      # Pool().apply_async(要調(diào)用的目標(biāo),(傳遞給目標(biāo)的參數(shù)元祖,))
      # 每次循環(huán)將會(huì)用空閑出來(lái)的子進(jìn)程去調(diào)用目標(biāo)
      po.apply_async(test1, (a,))

    po.close() # 關(guān)閉進(jìn)程池,關(guān)閉后po不再接收新的請(qǐng)求
    po.join() # 等待po中所有子進(jìn)程執(zhí)行完成,必須放在close語(yǔ)句之后
    print("-----end-----")
    time.sleep(2)
  elif number == 0:
    print("沒(méi)有任務(wù)需要處理")
    time.sleep(2)
  else:
    time.sleep(2)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python面向?qū)ο笏枷肱c應(yīng)用入門(mén)教程【類(lèi)與對(duì)象】

    Python面向?qū)ο笏枷肱c應(yīng)用入門(mén)教程【類(lèi)與對(duì)象】

    這篇文章主要介紹了Python面向?qū)ο笏枷肱c應(yīng)用,較為詳細(xì)的分析了Python面向?qū)ο笏枷肱c原理,并結(jié)合實(shí)例形式分析了類(lèi)與對(duì)象相關(guān)定義、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2019-04-04
  • 機(jī)器學(xué)習(xí)數(shù)據(jù)預(yù)處理之獨(dú)熱One-Hot編碼及其代碼詳解

    機(jī)器學(xué)習(xí)數(shù)據(jù)預(yù)處理之獨(dú)熱One-Hot編碼及其代碼詳解

    獨(dú)熱編碼即 One-Hot 編碼,又稱(chēng)一位有效編碼。其方法是使用 N位 狀態(tài)寄存器來(lái)對(duì) N個(gè)狀態(tài) 進(jìn)行編碼,每個(gè)狀態(tài)都有它獨(dú)立的寄存器位,并且在任意時(shí)候,其中只有一位有效,這篇文章主要介紹了機(jī)器學(xué)習(xí)數(shù)據(jù)預(yù)處理之獨(dú)熱One-Hot編碼及其代碼詳解,需要的朋友可以參考下
    2022-07-07
  • Python?Pandas中數(shù)據(jù)類(lèi)型查看與轉(zhuǎn)換方法

    Python?Pandas中數(shù)據(jù)類(lèi)型查看與轉(zhuǎn)換方法

    Pandas提供了豐富的數(shù)據(jù)類(lèi)型系統(tǒng)以及靈活的類(lèi)型轉(zhuǎn)換方法,下面小編就來(lái)詳細(xì)介紹一下如何查看Pandas數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)類(lèi)型和進(jìn)行有效的類(lèi)型轉(zhuǎn)換吧
    2025-04-04
  • 簡(jiǎn)介Python的collections模塊中defaultdict類(lèi)型的用法

    簡(jiǎn)介Python的collections模塊中defaultdict類(lèi)型的用法

    這里我們來(lái)簡(jiǎn)介Python的collections模塊中defaultdict類(lèi)型的用法,與內(nèi)置的字典類(lèi)最大的不同在于初始化上,一起來(lái)看一下:
    2016-07-07
  • 詳解Python如何優(yōu)雅地解析命令行

    詳解Python如何優(yōu)雅地解析命令行

    隨著我們編程經(jīng)驗(yàn)的增長(zhǎng),對(duì)命令行的熟悉程度日漸加深,想來(lái)很多人會(huì)漸漸地體會(huì)到使用命令行帶來(lái)的高效率。本文將介紹Python解析命令行的兩種方法,需要的可以參考一下
    2022-06-06
  • Python爬蟲(chóng)實(shí)現(xiàn)驗(yàn)證碼登錄代碼實(shí)例

    Python爬蟲(chóng)實(shí)現(xiàn)驗(yàn)證碼登錄代碼實(shí)例

    這篇文章主要介紹了Python爬蟲(chóng)實(shí)現(xiàn)驗(yàn)證碼登錄,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • python中websockets與主線程傳遞參數(shù)的實(shí)現(xiàn)

    python中websockets與主線程傳遞參數(shù)的實(shí)現(xiàn)

    本文主要介紹了python中websockets與主線程傳遞參數(shù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • PO模式在selenium自動(dòng)化測(cè)試框架的優(yōu)勢(shì)

    PO模式在selenium自動(dòng)化測(cè)試框架的優(yōu)勢(shì)

    大家都知道po模式可以提高代碼的可讀性和減少了代碼的重復(fù),但是相對(duì)的缺點(diǎn)還有,今天通過(guò)本文一起學(xué)習(xí)下PO模式在selenium自動(dòng)化測(cè)試框架的優(yōu)勢(shì),需要的朋友可以參考下
    2022-03-03
  • Python 字符串轉(zhuǎn)換為整形和浮點(diǎn)類(lèi)型的方法

    Python 字符串轉(zhuǎn)換為整形和浮點(diǎn)類(lèi)型的方法

    今天小編就為大家分享一篇Python 字符串轉(zhuǎn)換為整形和浮點(diǎn)類(lèi)型的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • python 批量壓縮圖片的腳本

    python 批量壓縮圖片的腳本

    用Python編寫(xiě)的批量壓縮圖片的腳本,可以自定義壓縮質(zhì)量,有批量圖片壓縮需求的朋友可以直接拿來(lái)用
    2021-06-06

最新評(píng)論

布拖县| 龙南县| 新巴尔虎右旗| 雷波县| 金乡县| 新邵县| 岳西县| 呼和浩特市| 诸暨市| 太仓市| 开原市| 长寿区| 昔阳县| 渝中区| 禹城市| 杂多县| 海门市| 汤阴县| 合阳县| 新营市| 铜山县| 和林格尔县| 宝清县| 太和县| 潞城市| 宿松县| 盐边县| 高雄县| 沅江市| 冷水江市| 台州市| 柯坪县| 城市| 巴林右旗| 定安县| 海丰县| 马鞍山市| 密山市| 丰顺县| 和龙市| 宁城县|