Redis-通過前綴獲取所有key


https://www.jianshu.com/p/80e3ca1e76af

1.Keys

keys pattern*   //
keys *pattern*  //
keys pattern??   /

優點:

  可以一次返回所有符合條件的key。

缺點:

  1. 沒有offset、limit參數,不能限制查詢個數
  2. keys是遍歷算法,復雜度O(n),數據量大的時候會導致redis卡頓

 2.Scan

  SCAN命令是一個基於游標的迭代器:SCAN命令每次被調用后,都會向用戶返回一個新的游標,用戶在下次迭代時需要使用這個新游標作為SCAN命令的游標參數,以此來延續之前的迭代過程。

SCAN cursor [MATCH pattern] [COUNT count]

優點:

  1. 復雜度O(n),但是scan是通過游標分步進行,不阻塞
  2. 提供limit,可控制返回結果數
  3. 同keys一樣,提供模式匹配
  4. 服務器不需要為游標保存狀態,唯一狀態是scan返回客戶端的游標整數

缺點:

  1. 返回結果可能重復,需要客戶端去重
  2. 如果遍歷過程中有數據修改,改動后的數據不保證同步


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM