中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

高效異步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

大同县| 兰西县| 平潭县| 鄂托克前旗| 佳木斯市| 南陵县| 龙游县| 寿阳县| 济宁市| 普兰店市| 垣曲县| 盐源县| 福安市| 繁峙县| 水富县| 涪陵区| 陆河县| 建昌县| 富锦市| 清远市| 六枝特区| 鹰潭市| 黔东| 五河县| 尤溪县| 奉化市| 堆龙德庆县| 张家川| 耿马| 仁化县| 上饶县| 资兴市| 犍为县| 桐柏县| 长沙市| 永春县| 海淀区| 留坝县| 鄂托克旗| 望奎县| 南木林县|