Redis 基础教程

Redis 命令

Redis 高级教程

Redis 笔记

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/redis-command-to-get-all-available-keys.html

Redis 遍历并查看返回所有(或指定规则)key 的命令

Redis 笔记 Redis 笔记


Redis 通过 client 命令如何查看返回所有可能的 key 命令有两种方式,一个是 keys 命令,在 2.8 版本及之后,可以用够高级的 scan 命令。

方式一:keys

KEYS pattern

Redis KEYS 命令查找并所有符合指定模式 pattern 的 key,如果要返回所有的 key,pattern 用通配符 * 替代即可。

KEYS *

该命令时间复杂度为 O(N),当数据库键非常多时,该命令应谨慎使用,线上环境慎用。

方式二:scan

Redis 在 2.8 版本及以后,可以选择更高级的 SCAN 命令代替 KEYS 命令。

SCAN cursor [MATCH pattern] [COUNT count]

Redis SCAN 命令查找给定数量内个数的符合给定模式 pattern 的 key。

KEYS 和 SCAN 的区别

keys 命令特点:

  • 该指令一次性返回所有匹配的 key;
  • key的数量过大时,会影响 redis 的性能,会导致服务卡顿。

scan 命令特点:

  • 基于游标的迭代器,需要基于上一次的游标延续之前的迭代过程;
  • 增量式迭代命令并不保证每次执行都返回某个给定数量的元素,只能是大概率符合 COUNT 参数;
  • 返回的游标不一定是递增的,可能会获取到重复key,需要在外部程序去重。

综上所述,数据量小时使用 KEYS,反之使用 SCAN

Redis 如何查看 key 的数量(个数),有三个相关命令,分别是 info、dbsize 和 keys。 ...
关于 es(Elasticsearch)如何将通过 api 返回的信息以指定的列名和升降序方式返回,可以将要排序的列名赋给参数 s,若要降序 ...
Elasticsearch(es)查看集群中所有索引情况可以使用 cat API 查看,其中索引相关的接口是 _cat/indices。 ...
Redis 清空所有数据及删除当前库的所有 key 等删除操作分别如下。 ...
Elasticsearch(es)不匹配或排除指定的 id 列表可以将 ids query 放在 bool 查询 must_not 的子项里 ...