打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python通过连接池连接redis,操作redis队列

在每次使用redis都进行连接的话会拉低redis的效率,都知道redis是基于内存的数据库,效率贼高,所以每次进行连接比真正使用消耗的资源和时间还多。所以为了节省资源,减少多次连接损耗,连接池的作用相当于缓存了多个客户端与redis服务端的连接,当有新的客户端来进行连接时,此时,只需要去连接池获取一个连接即可,实际上连接池就是把一个连接共享给多个客户端,可以说是广播,要用的话就去接收。

#-*-coding:utf-8-*-import redis# 连接池连接使用,节省了每次连接用的时间conn_pool = redis.ConnectionPool(host='localhost',port=6379)# 第一个客户端访问re_pool = redis.Redis(connection_pool=conn_pool)# 第二个客户端访问re_pool2 = redis.Redis(connection_pool=conn_pool)# key value存储到redis数据库try:    re_pool.set('chinese1', 'hello_world')    re_pool2.set('chinese2', 'hello_python')except Exception as e:    print(e)# 根据key获取存的数据的内容data_info = re_pool.get('chinese1')data_info2 = re_pool.get('chinese2')# 输出从redis库中取出来的数据的内容print(data_info)print(data_info2)# 获取两个连接的信息id1 = re_pool.client_list()id2 = re_pool2.client_list()# 输出两个连接的id,判断是否一致print('re_pool_id{}======re_pool2_id{}'.format(id1[0]['id'], id2[0]['id']))

redis队列操作redis-MQ

redis的队列效率高,而且简单易用。

1.lpush

从左往右插入队列

2.lrange

查看插入的数据
import redis
import json

# redis连接re_queue = redis.Redis(host='localhost', port=6379 )# 顺序插入五条数据到redis队列,sort参数是用来验证弹出的顺序num = 0for i in range(0, 5):    num = num + 1    # params info    params_dict = {"channel":"facebook", "operate":"publish", "sort":num}    # 从左往右入队到redis    re_queue.lpush("params_info", json.dumps(params_dict))# 查看目标队列数据result = re_queue.lrange("params_info", 0, 10)print(result)# 结果输出# [b'{"channel": "facebook", "operate": "publish", "sort": 5}', b'{"channel": "facebook", "operate": "publish", "sort": 4}', b'{"channel": "facebook", "operate": "publish", "sort": 3}',                             b'{"channel": "facebook", "operate": "publish", "sort": 2}', b'{"channel": "facebook", "operate": "publish", "sort": 1}']

3.rpop

从左往右,第一个进的肯定是在最右边,要处理第一个,就要从右往左弹出

4.rpush,lpop

rpush从右往左入队,第一个在最左边,lpop从左边弹出

5.llen

返回列表的长度

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
说说Python中贪婪和非贪婪匹配?
redis队列定时任务 使用redis的Keyspace Notifications实现定时任务队列
使用python解密360个人图书馆的文档列表url
奉化制作银行流水
linux下C实现多线程
一个Linux下C线程池的实现
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服