2017-03-09 97 views
3

我們正計劃將MGET用於我們的系統之一。在基準測試期間,我們能夠在生菜中的一次MGET調用中檢索100萬個鍵的值,並且非常驚訝。Redis MGET侷限性

我一直在努力尋找的是MGET的侷限性。具體來說,

  1. 是否有鑰匙數的限制,可以在一個MGET呼叫檢索?
  2. 單個MGET調用返回的數據大小是否有限制?

回答

5

在一個MGET調用中可以檢索的Keys的數量是否有限制?

理論上,該限制是int的最大值:0x7FFFFFFF。但是,在實踐中,您不能在單個Redis實例中擁有如此多的密鑰(它會佔用太多的內存)。

單個MGET調用返回的數據大小是否有限制?

理論上,沒有限制。但是,實際上,Redis會在發送給客戶端之前將返回的值保存在內存中,因此如果嘗試使用MGET鍵太多,則會出現OOM問題。

總之,這是一個壞主意,MGET從Redis的太多鍵:它的成本太多的內存,並阻止Redis的很長一段時間。