python使用redis在实际场景使用,python中redis的用法
本文主要介绍python使用redis模块实现与redis的交互。文章围绕主题,详细介绍了内容,有一定的参考价值,有需要的朋友可以参考一下。
00-1010 Redis模块1的使用。安装模块2。导入模块4。连接池5。管道事务订阅\发布操作
目录
redis模块的使用
pip3安装redis
1.安装模块
导入redis
3.连接模式
严格连接模式:r=雷迪斯。严格的redis (host=",port=)更Python化的连接模式:r=redis。redis (host=",port=)严格redis用于实现大多数官方命令,并使用官方语法和命令redis。Redis和StrictRedis的区别在于Redis是StrictRedis的子类,用于向前兼容旧版redis-py,这种连接方式更 python
2.导入模块
为了节省资源和减少多个连接的丢失,连接池相当于接管多个客户端和服务器之间的连接。当一个新的客户机需要连接时,它只需要从连接池中获得一个连接。事实上,多个客户机只共享一个连接。
导入redis
pool=redis。连接池(主机=localhost ,端口=6379,decode_responses=True)
r=redis。Redis(连接池=池)
r2=redis。Redis(连接池=池)
r.set(苹果, a )
print(r.get(apple ))
r2.set(香蕉, b )
print(r.get(香蕉))
print(r.client_list())
Print(r2.client_list())#可以看出两个连接的id相同,说明是一个客户端连接。
4.连接池
关于设置和获取的值,可以参考redis的命令。redis模块中对应函数的函数名与redis中的函数名基本相同。请注意,默认情况下,设置值或获取值是字节类型。如果要改成str类型,连接时需要添加decode_responses=True]设置值:set()==r.set()在redis中
Setnx()==r.set()在redis中
redis中的Setex()==r.setex()
redis中的Setbit()==r.setbit()
Mset()==r.mset()
在redis中,hset()==r.hset()
Sadd()==r.sadd()
#其他。基本redis的命令名与redis模块中的函数名一致。
获取:
redis中的get(get()==)r . get()
在redis中,mget (mget()==》r.mget()
redis中的getset(getset()==)r . getset()
Getrange ()==in redis R. getrange()
#其他。基本redis的命令名与redis模块中的函数名一致。
导入redis
r=redis。Redis(主机=localhost ,端口=6379,decode_responses=True)
# r=redis。
StrictRedis(host=localhost,port=6379)
r.set(key,value)
value=r.get(key)
# print(type(value))
print(value)
r.hset(info,name,lilei)
r.hset(info,age,18)
print(r.hgetall(info))
r.sadd(course,math,english,chinese)
print(r.smembers(course))
管道
一般情况下,执行一条命令后必须等待结果才能输入下一次命令,管道用于在一次请求中执行多个命令。
参数介绍:
transaction:指示是否所有的命令应该以原子方式执行。
import redis,timer=redis.Redis(host="localhost",port=6379,decode_responses=True)
pipe=r.pipeline(transaction=True)
pipe.set(p1,v2)
pipe.set(p2,v3)
pipe.set(p3,v4)
time.sleep(5)
pipe.execute()
事务
python中可以使用管道来代替事务:
补充:监视watch:pipe.watch()
import redis,timeimport redis.exceptions
r=redis.Redis(host=localhost,port=6379,decode_responses=True)
pipe=r.pipeline()
print(r.get(a))
try:
# pipe.watch(a)
pipe.multi()
pipe.set(here, there)
pipe.set(here1, there1)
pipe.set(here2, there2)
time.sleep(5)
pipe.execute()
except redis.exceptions.WatchError as e:
print("Error")
订阅\发布
发布方:
import redisr=redis.Redis(host="localhost",port=6379,decode_responses=True)
#发布使用publish(self, channel, message):Publish ``message`` on ``channel``.
Flag=True
while Flag:
msg=input("主播请讲话>>:")
if len(msg)==0:
continue
elif msg==quit:
break
else:
r.publish(cctv0,msg)
订阅方:
当订阅成功后,第一次接收返回的第一个消息是一个订阅确认消息:
import redisr=redis.Redis(host="localhost",port=6379,decode_responses=True)
#发布使用publish(self, channel, message):Publish ``message`` on ``channel``.
Flag=True
chan=r.pubsub()#返回一个发布/订阅对象
msg_reciver=chan.subscribe(cctv0)#订阅
msg=chan.parse_response()#第一次会返回订阅确认信息
print(msg)
print("订阅成功,开始接收------")
while Flag:
msg=chan.parse_response()#接收消息
print(">>:",msg[2])#此处的信息格式[消息类型, 频道, 消息],所以使用[2]来获取
到此这篇关于python使用redis模块来跟redis实现交互的文章就介绍到这了,更多相关python redis交互内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。