亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

基于python實現操作redis及消息隊列

瀏覽:2日期:2022-07-13 08:54:40

操作 redis

import redisredisPool = 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并返回上一次的valueprint(redis.mget([’name’,’age’])) #輸出name鍵和age鍵的valueprint(redis.setnx(’newname’,’james’)) #如果鍵值不存在,則賦值print(redis.mset({’name1’:’smith’,’name2’:’curry’})) #批量賦值print(redis.msetnx({’name3’:’ltf’,’name4’:’lsq’})) #不存在才批量賦值print(redis.incr(’age’,1)) #age對應的value 加1print(redis.decr(’age’,5)) #age對應的value 減5print(redis.append(’name4’,’is a sb’)) #在name4的value后追加 is a sb 返回字符串長度print(redis.substr(’name’,1,4)) #截取鍵 nameprint(redis.sadd(’tags’,’Book’,’Tea’,’Coffee’)) #返回集合長度 3print(redis.srem(’tags’,’Book’)) #返回刪除的數據個數print(redis.spop(’tags’)) #隨機刪除并返回該元素print(redis.smove(’tags’,’tags1’,’Coffee’))print(redis.scard(’tags’)) # 獲取tags集合的元素個數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的散列表添加映射關系,返回1 即添加的映射個數print(redis.hsetnx(’price’,’book’,6)) # 向鍵名為price的散列表添加映射關系,返回1 即添加的映射個數print(redis.hget(’price’, ’cake’)) # 獲取鍵名為cake的值 返回5print(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 為6print(redis.hexists(’price’, ’banana’)) # 在price中banana是否存在 返回Trueprint(redis.hdel(’price’,’banana’)) #從price中刪除banana 返回1print(redis.hlen(’price’)) # 輸出price的長度print(redis.hkeys(’price’)) # 輸出所有的映射鍵名print(redis.hvals(’price’)) # 輸出所有的映射鍵值print(redis.hgetall(’price’)) # 輸出所有的映射鍵對print(redis.rpush(’list’,1,2,3)) #向鍵名為list的列表尾部添加1,2,3 返回長度print(redis.lpush(’list’,0)) #向鍵名為list的列表頭部添加0 返回長度print(redis.llen(’list’)) #返回列表的長度print(redis.lrange(’list’,1,3)) #返回起始索引為1 終止索引為3的索引范圍對應的列表print(redis.lindex(’list’,1)) #返回索引為1的元素-valueprint(redis.lset(’list’,1,5)) #將list的列表索引為1的重新賦值為5print(redis.lpop(’list’)) #刪除list第一個元素print(redis.rpop(’list’)) #刪除list最后一個元素print(redis.blpop(’list’)) #刪除list第一個元素print(redis.brpop(’list’)) #刪除最后一個元素print(redis.rpoplpush(’list’,’list1’)) #刪除list的尾元素并將其添加到list1的頭部

消息隊列使用例子

import redisimport jsonredisPool = redis.ConnectionPool(host=’192.168.100.50’, port=6379, db=8)client = redis.Redis(connection_pool=redisPool)# 順序插入五條數據到redis隊列,sort參數是用來驗證彈出的順序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)) # 查看目標隊列數據 result = client.lrange('test', 0, 100) print(result) import time time.sleep(10)

import redisimport timeimport multiprocessingimport timeimport osimport randomredisPool = 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開始執行,進程號為%d' % (msg, os.getpid())) time.sleep(random.random() * 2) t_stop = time.time() print('%s執行完成,耗時%.2f' % (msg, t_stop - t_start))while True: number = client.llen(’test’) print('現在的隊列任務 條數是 ', 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(要調用的目標,(傳遞給目標的參數元祖,)) # 每次循環將會用空閑出來的子進程去調用目標 po.apply_async(test1, (a[i],)) po.close() # 關閉進程池,關閉后po不再接收新的請求 po.join() # 等待po中所有子進程執行完成,必須放在close語句之后 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(要調用的目標,(傳遞給目標的參數元祖,)) # 每次循環將會用空閑出來的子進程去調用目標 po.apply_async(test1, (a,)) po.close() # 關閉進程池,關閉后po不再接收新的請求 po.join() # 等待po中所有子進程執行完成,必須放在close語句之后 print('-----end-----') time.sleep(2) elif number == 0: print('沒有任務需要處理') time.sleep(2) else: time.sleep(2)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: a级高清观看视频在线看 | 情趣色视频网站 | 特黄一级黄色片 | 黄色激情小视频 | 国产午夜精品尤物福利视频 | 91www在线观看 | 欧美精品一级毛片 | 91高清免费国产自产拍2021 | 久久婷婷色香五月综合激情 | 久久99精品久久久久久国产越南 | 青草伊伊 | 黄频大全| 久久99精品久久久久久首页 | 日本丰满hdxxxxx护士 | 韩国一级特黄清高免费大片 | 国产精品高清一区二区不卡 | 在线视频日韩 | 国产一级毛片视频 | 国产精品亚洲欧美一区麻豆 | 中国欧美日韩一区二区三区 | 午夜性影院 | 老师的丰满大乳奶水视频 | 男女爱爱免费高清 | 狼人久草 | 国产精品自在线拍国产 | 日韩免费观看 | 午夜男人女人爽爽爽视频 | 中文字幕久久久久一区 | 国产精品久久做爰 | 成人午夜视频在线播放 | 一级毛片特黄久久免费看 | 国产人妖性视频在线 | 中文字幕日韩国产 | 91激情视频 | 黄色影片在线观看 | 亚洲一区二区三区四 | 很黄很黄视频 | 一区二区三区在线视频观看 | 青草91视频免费观看 | 香蕉97超级碰碰碰碰碰久 | 国产在线拍揄自揄视频不卡99 |