python编辑redis(python使用pipeline批量读写redis的方法)
类别:脚本大全 浏览量:289
时间:2022-03-29 03:07:27 python编辑redis
python使用pipeline批量读写redis的方法用了很久的redis了。随着业务的要求越来越高。对redis的读写速度要求也越来越高。正好最近有个需求(需要在秒级取值1000+的数据),如果对于传统的单词取值,循环取值,消耗实在是大,有小伙伴可能考虑到多线程,但这并不是最好的解决方案,这里考虑到了redis特有的功能pipeline管道功能。
下面就更大家演示一下pipeline在python环境下的使用情况。
1、插入数据
|
>>> import redis >>> conn = redis.Redis(host = '192.168.8.176' ,port = 6379 ) >>> pipe = conn.pipeline() >>> pipe.hset( "hash_key" , "leizhu900516" , 8 ) Pipeline<ConnectionPool<Connection<host = 192.168 . 8.176 ,port = 6379 ,db = 0 >>> >>> pipe.hset( "hash_key" , "chenhuachao" , 9 ) Pipeline<ConnectionPool<Connection<host = 192.168 . 8.176 ,port = 6379 ,db = 0 >>> >>> pipe.hset( "hash_key" , "wanger" , 10 ) Pipeline<ConnectionPool<Connection<host = 192.168 . 8.176 ,port = 6379 ,db = 0 >>> >>> pipe.execute() [ 1L , 1L , 1L ] >>> |
2、批量读取数据
|
>>> pipe.hget( "hash_key" , "leizhu900516" ) Pipeline<ConnectionPool<Connection<host = 192.168 . 8.176 ,port = 6379 ,db = 0 >>> >>> pipe.hget( "hash_key" , "chenhuachao" ) Pipeline<ConnectionPool<Connection<host = 192.168 . 8.176 ,port = 6379 ,db = 0 >>> >>> pipe.hget( "hash_key" , "wanger" ) Pipeline<ConnectionPool<Connection<host = 192.168 . 8.176 ,port = 6379 ,db = 0 >>> >>> result = pipe.execute() >>> print result [ '8' , '9' , '10' ] #有序的列表 >>> |
总结:redis的pipeline就是这么简单,实际生产环境,根据需要去编写相应的代码。思路同理,如:
|
redis_db = redis.Redis(host = '127.0.0.1' ,port = 6379 ) data = [ 'zhangsan' , 'lisi' , 'wangwu' ] with redis_db.pipeline(transaction = False ) as pipe: for i in data: pipe.zscore( self .key, i) result = pipe.execute() print result # [100, 80, 78] |
线上的redis一般都是集群模式,集群模式下使用pipeline的时候,在创建pipeline的对象时,需要指定
|
pipe = conn.pipeline(transaction = False ) |
经过线上实测,利用pipeline取值3500条数据,大约需要900ms,如果配合线程or协程来使用,每秒返回1W数据是没有问题的,基本能满足大部分业务。
以上这篇python使用pipeline批量读写redis的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
原文链接:http://blog.51cto.com/leizhu/1825733
您可能感兴趣
- 如何用python编写抽奖(详解用python写一个抽奖程序)
- python统计出现文字最多的词(使用Python 统计高频字数的方法)
- 抖音上很火的表白程序链接(我喜欢你 抖音表白程序python版)
- python多线程和多进程应用场景(Python多线程处理实例详解单进程/多进程)
- 怎么用python实现链表(Python3实现的判断回文链表算法示例)
- python类的init方法(Python操作配置文件ini的三种方法讲解)
- python 队列与列表(Python实现的栈、队列、文件目录遍历操作示例)
- python中列表remove的用法汇总(对python_discover方法遍历所有执行的用例详解)
- pythonjpg转pdf格式(Python使用到第三方库PyMuPDF图片与pdf相互转换)
- python使用什么函数定义匿名函数(Python匿名函数及应用示例)
- python中怎么实现登录程序(详解Python用户登录接口的方法)
- python列表反转的方法(Python实现的列表排序、反转操作示例)
- python中字典的主要特点(Python里字典的基本用法包括嵌套字典)
- python程序锁教程(在python里协程使用同步锁Lock的实例)
- python怎么进行参数传递(在Python中如何传递任意数量的实参的示例代码)
- python把str转成list(python3 字符串/列表/元组str/list/tuple相互转换方法及join函数的使用)
- 800壮士拼死拖住30万日军 八佰 的真实历史,誓与阵地共存亡(800壮士拼死拖住30万日军)
- 演员陈创,火于 哮天犬 ,颠峰于 福贵 ,现状却令人唏嘘(演员陈创火于哮天犬)
- 幼小衔接-20以内看图读数 写数 数的组成练习题(幼小衔接-20以内看图读数)
- 你只要花上20天记单词,英语成绩就能从57提到100(你只要花上20天记单词)
- 夕云天际飞,亢龙化太极(夕云天际飞亢龙化太极)
- 爱情可以当饭吃吗(怎么回复)
热门推荐
- 表空间不足无法登录(System表空间不足的报警问题浅析)
- js函数对象
- dedecms标签怎么用(dedecms建站设置自动内链的方法)
- 如何认识服务器(关于Nginx、Apache、Tomcat三个WEB服务器的区别和认知)
- php性能比较(php使用yield对性能提升的测试实例分析)
- vue如何检查数组变化(Vue2中无法检测到数组变动的原因及解决)
- zabbix监控页面(Zabbix WEB监测实现过程图解)
- php经典算法大全(php菜单/评论数据递归分级算法的实现方法)
- 在php中与数据库连接的技术(PHP7.0连接DB操作实例分析基于mysqli)
- sql server 动态建表(SQL Server如何通过创建临时表遍历更新数据详解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9