關於redis的keys命令的性能分析。


  1. keys命令在線上是禁止使用的。
  2. 原因:
    1. Redis是單線程的,其所有操作都是原子的,
    2. 當數據量過大的時候,keys命令是非常耗時的,極大的會造成線程阻塞。導致所有請求都被拖慢。甚至嚴重會redis服務宕機。集群環境下,阻塞時間過長會導致集群分析故障而進行集群切換。
  3. 解決方案:
    1. 使用scan命令,它是分批次查詢,不會影響redis卡頓。
    2. 考慮改良鍵值索引,使用set數據結構存儲。
  4. 其他會類似於keys命令的命令:hgetall、lrange、smembers、zrange、sinter
  5. scan命令的使用:scan 迭代起始游標
    • 第一次迭代遍歷 起始游標值為0,結果默認是10個,並返回下一次迭代起始游標
    • 當返回迭代游標值為0時,說明已經完成了一次完整的遍歷。
    • 可以使用 count選項 設置每次遍歷的長度
    • match選項 設置匹配規則。

參考鏈接:https://www.cnblogs.com/tonyY/p/12175032.html
命令參考鏈接:http://doc.redisfans.com/key/scan.html


免責聲明!

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



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