高效异步复述,客户端aredis优劣势原理

介绍

这篇文章将为大家详细讲解有关高效异步复述,客户端aredis优劣势原理,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

<强>背景

aredis是一款由同步的复述,客户端redis-py改写而成的高效的异步复述,客户端,在最新的1.0.7版本中完成了对于复述,集群的支持。

<强>改动

主要重写了底部建立连接和读取数据部分的代码,接口部分都向下兼容,便于使用者从redis-py的同步代码迁移到异步和等待的协程版本,详细文档请看aredis文档

<强>使用

安装pip安装aredis

具体姿势可以参阅项目文档和例子,接口向下兼容redis-py,支持Python 3.5及以上版本,在最新的1.0.7版本中也支持复述,集群,并且对于Python 3.6还支持各个数据类型的扫描iter操作。

一个简单的例子如下所示:

祝辞祝辞祝辞进口aredis
在祝辞祝辞进口asyncio
在祝辞祝辞r=aredis.StrictRedis(主机=& # 39;localhost # 39;,端口=6379,德国联邦铁路(db)=0)
在祝辞祝辞循环=asyncio.get_event_loop ()
在祝辞祝辞异步def测试():
在祝辞祝辞等待r.set (& # 39; foo # 39;, & # 39;酒吧# 39;)
在祝辞祝辞print(等待r.get (& # 39; foo # 39;))
在祝辞祝辞loop.run_until_complete(测试())
b # 39;酒吧# 39;

<>强优势

使用了协程的异步客户端相较于同步客户端来说由于使用了Python的事件循环等多余代码,实际上运行效率是较低的,但是好处在于它不会阻塞你的io,你可以在网络io进行的同时进行别的操作,aredis比较适用于爬虫,http服务器等密集网络io的操作,使得你的代码不用等上复述,操作的时间。

而相比于现有的两款支持async/等待的复述,客户端来说:

<强> aioredis:

aioredis要求装上hiredis,而aredis可以不需要相关依赖地运行,速度上两者持平且都可以使用hiredis来作为解析器,用uvloop代替asyncio的eventloop来加速

<强> asyncio_redis:

asyncio_redis使用了Python提供的协议来进行异步通信,而aredis则使用StreamReader和StreamWriter来进行异步通信,在运行速度上两倍于asyncio_redis,附上基准

而且以上两款客户端目前都还没有对于集群的支持,相对来说aredis的功能更为全面一些。

<>强劣势

现在对于编码的支持还不是那么完善,大部分命令还是用字节类型作为返回值,且目前只支持Python 3.5及以上的版本

关于高效异步复述,客户端aredis优劣势原理就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

高效异步复述,客户端aredis优劣势原理