python redis连接池获取后关闭_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 = 0
for 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
返回列表的长度
python redis连接池获取后关闭_python通过连接池连接redis,操作redis队列相关推荐
- 解决SSH连接到服务器后因闲置时间导致的断开连接
解决SSH连接到服务器后因闲置时间导致的断开连接 方法一 方法二 方法一 (服务器端)通过修改SSH配置文件 使用编辑器(vim.vi)等打开/etc/ssh/sshd_config 找到被注释的代码 ...
- python使用什么来区分代码块_Python 小数据池、代码块以及代码块缓存机制
按照惯例,吟诗一首:苏轼<江城子·乙卯正月二十日夜记梦> 十年生死两茫茫,不思量,自难忘.千里孤坟,无处话凄凉. 纵使相逢应不识,尘满面,鬓如霜. 夜来幽梦忽还乡,小轩窗,正梳妆.相顾无言 ...
- python中文件的打开与关闭_python中的文件打开与关闭操作命令介绍
python中的文件打开与关闭操作命令介绍 1.文件打开与关闭 在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件 open(文件名,访问模式). f = open('t ...
- 远程主机关闭了一个现有连接python_python 远程主机强迫关闭了一个现有的连接 socket 超时设置 errno 10054 | 学步园...
python socket.error: [Errno 10054] 远程主机强迫关闭了一个现有的连接.问题解决方案: 前几天使用python读取网页.因为对一个网站大量的使用urlopen操作,所以 ...
- java获取list redis_【快学springboot】14.操作redis之list
前言 之前讲解了springboot(StringRedisTemplate)操作redis的string数据结构,这篇文章将会讲解list数据结构 list数据结构具有的操作 下图列出了redis ...
- python 调用控制台并获取返回结果_python脚本执行CMD命令并返回结果的例子
最近写脚本的时想要用python直接在脚本中去执行cmd命令,并且将返回值打印出来供下面调用,所以特意查了下,发现主要有一下几种方式来实现,很简单: 就拿执行adb, adb shell, adb d ...
- python不需要定义函数后使用_python自定义函数可以向前引用不用声明
原博文 2017-01-31 16:35 − #有些编程语言不够"聪明",向这类向前引用的方式会导致报错,但Python足够"醒目",这段代码是正确的! def ...
- python进程池的实现原理_Python基于进程池实现多进程过程解析
1.注意:pool必须在 if __name__ == '__main__' 下面运行,不然会报错 2.多进程内出现错误会直接跳过该进程,并且默认不会打印错误信息 3.if__name__下面的数据需 ...
- python调用api接口获取天气数据_python 接口实战--天气API
1.接口地址: 网页请求: 将结果拷贝到bjson中,格式化为json的格式. 在python中实现天气测试,代码实现. import requests 导入requests库 from url ...
最新文章
- guid linux 识别的分区表_Linux系统MBR和GPT分区的区别介绍
- 杭电 汉诺塔问题总结
- matlab怎么将一个矩阵转化为灰度图
- 12 种主流编程语言输出“ Hello World ”,把我给难住了!
- 程序员一年稳赚50w,却被群嘲只造改bug!TA说:2020年我的愿望是........
- Get value from agent failed: cannot connect to [[192.168.121.128]:10050]:[4]Interrupted systemctl ca
- FFMPEG结构体分析:AVCodecContext
- 为Web 开发者Bug 报告和跟踪工具
- 【转】【深度学习MobileNet】——深刻解读MobileNet网络结构
- 分布式任务调度平台201902
- Win7系统彻底删除打印机驱动
- 笔记本可自行更换CPU、独显了,老外用它手搓了台“PS5”
- 1273-宣传墙(状压dp )
- java电影院购票系统概况_电影院售票管理系统
- “科林明伦杯”哈尔滨理工大学第十届部分题解
- 服务器系统迁移服务收费,服务器数据库迁移也收费
- sublime显示当前文件的编码格式
- html广告拦截网吧,网吧广告拦截软件是怎么安装的
- 社团结构 matlab,社团结构
- mysql稳定性_MySQL的稳定性