91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

高效異步redis客戶端aredis優劣勢原理

發布時間:2020-10-29 16:54:55 來源:億速云 閱讀:575 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關高效異步redis客戶端aredis優劣勢原理,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

背景

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 及以上的版本

關于高效異步redis客戶端aredis優劣勢原理就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

苍山县| 南皮县| 澄城县| 盐城市| 离岛区| 恩施市| 如东县| 绥德县| 新余市| 宝鸡市| 孟津县| 遵义县| 历史| 固始县| 德江县| 镶黄旗| 石泉县| 广宗县| 大田县| 莱州市| 连平县| 雅安市| 万盛区| 宁津县| 瑞昌市| 乳源| 丹凤县| 贵州省| 缙云县| 北安市| 崇文区| 简阳市| 乌拉特后旗| 炉霍县| 汪清县| 日喀则市| 万盛区| 辽宁省| 新津县| 乳源| 江都市|