redis 使用注意事项SCAN KEYS FLUSHALL

  

   最近在排查生产环境响应慢的问题时,通过排查数据库、内存、网络等指标,都未发现异常。

   在排查redis慢日志时,发现调用了API底层的Keys命令,导致生产环境redis命令操作都比较慢,延迟比较大。

  因此,

   生产环境redis是不允许使用keys ,flushall这些命令的。

 

   如果要使用类似keys的场景,需要换成scan命令

 

 

注:

SCAN、SSCAN、HSCAN、ZSCAN 4 个命令,分别用于集合、哈希键及有序集等。

  • SCAN:命令用于迭代当前数据库中的数据库键,除了可以遍历所有的 key 之外,还可以对指定的容器集合进行遍历。
  • SSCAN:命令用于迭代set集合键中的元素。
  • HSCAN:命令用于迭代哈希键中的键值对。
  • ZSCAN:命令用于迭代zset有序集合中的元素(包括元素成员和元素分值)。

命令格式如下:
SCAN cursor [MATCH pattern] [COUNT count]   
scan 游标 MATCH <返回和给定模式相匹配的元素> count 每次迭代所返回的元素数量 SCAN 命令是增量的循环,每次调用只会返回一小部分的元素。所以不会有 KEYS 命令的坑(key 的数量比较多,一次 KEYS 查询会 block 其他操作)。

 

  

posted @ 2020-06-11 23:30  xuzhujack  阅读(382)  评论(0编辑  收藏  举报
;