经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Redis » 查看文章
python通过连接池连接redis,操作redis队列
来源:cnblogs  作者:达芬奇vinic  时间:2019/11/4 8:39:38  对本文有异议

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

  1. #-*-coding:utf-8-*-
  2. import redis
  3. # 连接池连接使用,节省了每次连接用的时间
  4. conn_pool = redis.ConnectionPool(host='localhost',port=6379)
  5. # 第一个客户端访问
  6. re_pool = redis.Redis(connection_pool=conn_pool)
  7. # 第二个客户端访问
  8. re_pool2 = redis.Redis(connection_pool=conn_pool)
  9. # key value存储到redis数据库
  10. try:
  11. re_pool.set('chinese1', 'hello_world')
  12. re_pool2.set('chinese2', 'hello_python')
  13. except Exception as e:
  14. print(e)
  15. # 根据key获取存的数据的内容
  16. data_info = re_pool.get('chinese1')
  17. data_info2 = re_pool.get('chinese2')
  18. # 输出从redis库中取出来的数据的内容
  19. print(data_info)
  20. print(data_info2)
  21. # 获取两个连接的信息
  22. id1 = re_pool.client_list()
  23. id2 = re_pool2.client_list()
  24. # 输出两个连接的id,判断是否一致
  25. 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

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

3.rpop

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

4.rpush,lpop

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

5.llen

返回列表的长度

原文链接:http://www.cnblogs.com/vinic-xxm/p/11782325.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号