這篇文章給大家分享的是有關(guān)python使用redis消息隊(duì)列的方法。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。
成都創(chuàng)新互聯(lián)公司主要從事做網(wǎng)站、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)沅江,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):13518219792
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'])) # 查詢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的頭部
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)
關(guān)于python使用redis消息隊(duì)列的方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
網(wǎng)頁(yè)標(biāo)題:python如何使用redis的消息隊(duì)列
鏈接URL:http://bm7419.com/article30/gejspo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、Google、App設(shè)計(jì)、電子商務(wù)、網(wǎng)站制作、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)