时间:2021-05-02
背景
aredis 是一款由同步的 redis 客户端 redis-py 改写而成的高效的异步 redis 客户端,在最新的 1.0.7 版本中完成了对于 redis 集群的支持。
改动
主要重写了底部建立连接和读取数据部分的代码,接口部分都向下兼容,便于使用者从 redis-py 的同步代码迁移到 async 和 await 的协程版本,详细文档请看 aredis 文档
使用
安装 pip install aredis
具体姿势可以参阅项目文档和例子,接口向下兼容 redis-py,支持 Python 3.5 及以上版本,在最新的 1.0.7 版本中也支持 redis cluster,并且对于 Python 3.6 还支持各个数据类型的 scan iter 操作。
一个简单的例子如下所示:
>>> import aredis
>>> import asyncio
>>> r = aredis.StrictRedis(host='localhost', port=6379, db=0)
>>> loop = asyncio.get_event_loop()
>>> async def test():
>>> await r.set('foo', 'bar')
>>> print(await r.get('foo'))
>>> loop.run_until_complete(test())
b'bar'
优势
使用了协程的异步客户端相较于同步客户端来说由于使用了 Python 的事件循环等多余代码,实际上运行效率是较低的,但是好处在于它不会阻塞你的 io,你可以在网络 io 进行的同时进行别的操作,aredis 比较适用于爬虫、http 服务器等密集网络 io 的操作,使得你的代码不用等上 redis 操作的时间。
而相比于现有的两款支持 async/await 的 redis 客户端来说:
aioredis:
aioredis 要求装上 hiredis , 而 aredis 可以不需要相关依赖地运行,速度上两者持平且都可以使用 hiredis 来作为 parser ,用 uvloop 代替 asyncio 的 eventloop 来加速
asyncio_redis:
asyncio_redis 使用了 Python 提供的 protocol 来进行异步通信,而 aredis 则使用 StreamReader 和 StreamWriter 来进行异步通信,在运行速度上两倍于 asyncio_redis ,附上 benchmark
而且以上两款客户端目前都还没有对于集群的支持,相对来说 aredis 的功能更为全面一些。
劣势
现在对于编码的支持还不是那么完善,大部分命令还是用 bytes 类型作为返回值,且目前只支持 Python 3.5 及以上的版本
前排求 star 和 pr 0- 0
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://www.cnblogs.com/lincappu/p/13700889.html
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
原文大纲:天猫店铺异地转让有什么优劣势?如何转让安全现如今提起任何事物都有它存在的优劣势,但是针对这种优劣势,人们常常会去分析、对比和判断,看看到底是优势大还是
任何事物都有它存在的优劣势,但是针对这种优劣势,人们常常会去分析、对比和判断,看看到底是优势大还是劣势大,最后再做出决定,而今天我要给各位说说天猫店铺异地转让的
本文实例讲述了PHPSwoole异步Redis客户端实现方法。分享给大家供大家参考,具体如下:使用版本:1.8.0及以上使用条件:1.开启async-redis
你好很高兴解答要了解品牌折扣尾货的优劣势品牌折扣尾货是将商场里的服装汇集到一个卖场以折扣的方式销售。做品牌折扣尾货首当其中的是了解它优劣势。品牌折扣尾货的优势当
Redis命令的详解及简单实例Redis命令用于在redis服务上执行操作。要在redis服务上执行命令需要一个redis客户端。Redis客户端在我们之前下载