在每次使用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队列相关推荐

  1. 解决SSH连接到服务器后因闲置时间导致的断开连接

    解决SSH连接到服务器后因闲置时间导致的断开连接 方法一 方法二 方法一 (服务器端)通过修改SSH配置文件 使用编辑器(vim.vi)等打开/etc/ssh/sshd_config 找到被注释的代码 ...

  2. python使用什么来区分代码块_Python 小数据池、代码块以及代码块缓存机制

    按照惯例,吟诗一首:苏轼<江城子·乙卯正月二十日夜记梦> 十年生死两茫茫,不思量,自难忘.千里孤坟,无处话凄凉. 纵使相逢应不识,尘满面,鬓如霜. 夜来幽梦忽还乡,小轩窗,正梳妆.相顾无言 ...

  3. python中文件的打开与关闭_python中的文件打开与关闭操作命令介绍

    python中的文件打开与关闭操作命令介绍 1.文件打开与关闭 在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件 open(文件名,访问模式). f = open('t ...

  4. 远程主机关闭了一个现有连接python_python 远程主机强迫关闭了一个现有的连接 socket 超时设置 errno 10054 | 学步园...

    python socket.error: [Errno 10054] 远程主机强迫关闭了一个现有的连接.问题解决方案: 前几天使用python读取网页.因为对一个网站大量的使用urlopen操作,所以 ...

  5. java获取list redis_【快学springboot】14.操作redis之list

    前言 之前讲解了springboot(StringRedisTemplate)操作redis的string数据结构,这篇文章将会讲解list数据结构 list数据结构具有的操作 下图列出了redis ...

  6. python 调用控制台并获取返回结果_python脚本执行CMD命令并返回结果的例子

    最近写脚本的时想要用python直接在脚本中去执行cmd命令,并且将返回值打印出来供下面调用,所以特意查了下,发现主要有一下几种方式来实现,很简单: 就拿执行adb, adb shell, adb d ...

  7. python不需要定义函数后使用_python自定义函数可以向前引用不用声明

    原博文 2017-01-31 16:35 − #有些编程语言不够"聪明",向这类向前引用的方式会导致报错,但Python足够"醒目",这段代码是正确的! def ...

  8. python进程池的实现原理_Python基于进程池实现多进程过程解析

    1.注意:pool必须在 if __name__ == '__main__' 下面运行,不然会报错 2.多进程内出现错误会直接跳过该进程,并且默认不会打印错误信息 3.if__name__下面的数据需 ...

  9. python调用api接口获取天气数据_python 接口实战--天气API

    1.接口地址: 网页请求: 将结果拷贝到bjson中,格式化为json的格式. 在python中实现天气测试,代码实现. import requests    导入requests库 from url ...

最新文章

  1. guid linux 识别的分区表_Linux系统MBR和GPT分区的区别介绍
  2. 杭电 汉诺塔问题总结
  3. matlab怎么将一个矩阵转化为灰度图
  4. 12 种主流编程语言输出“ Hello World ”,把我给难住了!
  5. 程序员一年稳赚50w,却被群嘲只造改bug!TA说:2020年我的愿望是........
  6. Get value from agent failed: cannot connect to [[192.168.121.128]:10050]:[4]Interrupted systemctl ca
  7. FFMPEG结构体分析:AVCodecContext
  8. 为Web 开发者Bug 报告和跟踪工具
  9. 【转】【深度学习MobileNet】——深刻解读MobileNet网络结构
  10. 分布式任务调度平台201902
  11. Win7系统彻底删除打印机驱动
  12. 笔记本可自行更换CPU、独显了,老外用它手搓了台“PS5”
  13. 1273-宣传墙(状压dp )
  14. java电影院购票系统概况_电影院售票管理系统
  15. “科林明伦杯”哈尔滨理工大学第十届部分题解
  16. 服务器系统迁移服务收费,服务器数据库迁移也收费
  17. sublime显示当前文件的编码格式
  18. html广告拦截网吧,网吧广告拦截软件是怎么安装的
  19. 社团结构 matlab,社团结构
  20. mysql稳定性_MySQL的稳定性

热门文章

  1. python的print格式化输出,以及使用format来控制。
  2. python yield 和 yield from用法总结
  3. [实现] 利用 Seq2Seq 预测句子后续字词 (Pytorch)
  4. camera数字降噪(DNR)
  5. 从PyTorch到ONNX的端到端AlexNet
  6. Python API vs C++ API of TensorRT
  7. python的 局部变量与全局变量
  8. js 自带的三种弹框
  9. Java 数值大小比较
  10. Java中byte与16进制字符串的互相转换