Redis中keys()方法作用原理是什麼?
大家讲道理
大家讲道理 2017-04-21 11:15:47
0
3
801

鄙人蠢,讀不懂redis源碼~
有一天用redis-py連上Redis備用服務器,想看一下某類型的key有多少個。

rds = redis.Redis(ip, host)
print len(rds.keys('xxx_*'))

最後有大概400w個,阻塞了很久才算出來結果。
令我疑惑的是,這個客戶端進程CPU占用率一直在100%以上(為什麼會超過100%我也不知道),反倒內存占用率不高。

理論上keys的運算結果應該是服務端計算出來的,客戶端接收數據頂多就是內存消耗多點兒,為什麼實際情況中客戶端CPU占用率如此之高,客戶端自己做了什麼奇怪的計算?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回覆(3)
PHPzhong

遍歷匹配, 肯定慢. 作者都說了盡量不要用keys這個命令

伊谢尔伦

cpu高的原因主要是在解碼傳輸的格式,轉換成python物件吧

洪涛

你用的是top看的?超過100%是因為多核心的cpu吧

最好別用key,可以用redis的一個小工具redis-rdb-tools,怎麼用在這搜搜好像有人提到過

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板