https://www.jianshu.com/p/80e3ca1e76af
1.Keys
keys pattern* // keys *pattern* // keys pattern?? /
優點:
可以一次返回所有符合條件的key。
缺點:
- 沒有offset、limit參數,不能限制查詢個數
- keys是遍歷算法,復雜度O(n),數據量大的時候會導致redis卡頓
2.Scan
SCAN命令是一個基於游標的迭代器:SCAN命令每次被調用后,都會向用戶返回一個新的游標,用戶在下次迭代時需要使用這個新游標作為SCAN命令的游標參數,以此來延續之前的迭代過程。
SCAN cursor [MATCH pattern] [COUNT count]
優點:
- 復雜度O(n),但是scan是通過游標分步進行,不阻塞
- 提供limit,可控制返回結果數
- 同keys一樣,提供模式匹配
- 服務器不需要為游標保存狀態,唯一狀態是scan返回客戶端的游標整數
缺點:
- 返回結果可能重復,需要客戶端去重
- 如果遍歷過程中有數據修改,改動后的數據不保證同步
