操作 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对应的value 加1 print(redis.decr('age',5)) #age对应的value 减5 print(redis.append('name4','is a sb')) #在name4的value后追加 is a sb 返回字符串长度 print(redis.substr('name',1,4)) #截取键 name print(redis.sadd('tags','Book','Tea','Coffee')) #返回集合长度 3 print(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的值 返回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的长度 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的元素-value print(redis.lset('list',1,5)) #将list的列表索引为1的重新赋值为5 print(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 redis import json redisPool = 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 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开始执行,进程号为%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)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年09月21日
2024年09月21日
- 陈慧琳.2002-闪亮每一天新歌+精选2CD【正东】【WAV+CUE】
- 袁培华.1992-有缘【歌林】【WAV+CUE】
- 王瑞霞.1996-是我太软心【名冠】【WAV+CUE】
- 《谭维维 30首经典流行歌曲精选辑 2CD》[WAV/分轨][1.1GB]
- 《赵传 出道三十年全新大碟 你过得还好吗》[WAV/分轨][460MB]
- 《发烧四大天王 磁性男声HiFi发烧碟 2CD》[WAV/分轨][1GB]
- 黑神话悟空上品鼠司空精魄获取方法一览|上品鼠司空精魄收集攻略
- 《真三国无双:起源》新情报将于9月26日公开,实机演示亮相!
- 黑神话悟空上品鼠禁卫精魄获取方法一览|上品鼠禁卫精魄收集攻略
- 优美的旋律至真的情怀《品茶轻音乐·极品典藏Vol.1CD1》[WAV+CUE]
- 曾嵘《峥嵘岁月DSD(试音碟)》WAV+CUE
- 小提琴天碟AlfredoCampoli坎波利-贝多芬D大调小提琴协奏曲与普罗米修斯作品选FLAC
- 博主称本周游戏业内动荡无比:高价PS5 Pro、Xbox裁员等
- 米哈游也搞AI?米哈游AI大模型Glossa完成备案
- G胖变G瘦后:玩家担心其健康状况:如果他出事 游戏业将发生巨变