文章目录

  • 查看 Redis 某种类型的所有 key
    • 方法
    • 示例
    • 附录 - MacOS 安装 GUN grep

查看 Redis 某种类型的所有 key

Redis 没有提供按类型查找 key 的方法。 我们自己通过管道组合命令来查询。

注意,这仅适合 key 不太多的情况,如果太多,可能会很卡。

方法

redis-cli -a [Password] KEYS "*" 2>/dev/null | xargs -t -I {} redis-cli -a [Password] TYPE "{}" 2>&1 | grep -x -B 2 [type] | grep -v Warning
  • [type] 替换成你要查找的类型
  • 当 Redis 存在密码时,使用 -a [Password]。这将导致 Redis 警告:Warning: Using a password with ‘-a’ or ‘-u’ option on the command line interface may not be safe.。所以 grep -B 2 打印结果前两行才能看到 key 名称。
  • grep -v Warning 排除 Redis 警告信息。

如果你的 grep 支持 -P 选项,那么你有一种更加完美的解决方式:
如果你的系统是 MacOS 且不支持 -P,可参考以下 《附录 - MacOS 安装 GUN grep》

redis-cli -a [Password] KEYS "*" 2>/dev/null | xargs -t -I {} redis-cli -a [Password] TYPE "{}" 2>&1 | grep -x -B 2 [type] | grep -o -P '(?<=TYPE ).*$'
  • grep -o -P '(?<=TYPE ).*$' 只打印 key
  • 如果你看不懂 ?<= 的含义,请自行学习正则表达式断言

示例

例如:查看 stream 类型的所有 key
假设密码为 abcd1234

$ redis-cli -a abcd1234 KEYS "*" 2>/dev/null | xargs -t -I {} redis-cli -a abcd1234 TYPE "{}" 2>&1 | grep -x -B 2 stream | grep -v Warning
# 打印结果
redis-cli -a abcd1234 TYPE userstream
stream
  • 第一行 userstream 即是我们查找出来的其中一个 key
  • 第二行 stream 是它的类型

同样的,用 -P 查询

$ redis-cli -a abcd1234 KEYS "*" 2>/dev/null | xargs -t -I {} redis-cli -a abcd1234 TYPE "{}" 2>&1 | grep -x -B 2 stream | grep -o -P '(?<=TYPE ).*$'
# 打印结果
userstream
  • 结果更加直观。

附录 - MacOS 安装 GUN grep

MacOS 系统自带的 grep 是 BSD grep, 它不支持 -P 选项,GNU grep 才支持 -P 选项。

  1. 安装
$ brew install grep
  1. 替换 grep 默认路径
$ vim ~/.zshrc
# 在末尾加入
export PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"
  1. 立刻生效
$ source ~/.zshrc

查看 Redis 某种类型的所有 key相关推荐

  1. Redis基本类型之String类型

    文章目录 Redis基本类型之String类型 一.简介 二.String类型的常见命令 三.操作案例 1.set.get(设置和获取数据) 2.mset.mget(批量设置和获取数据) 3.incr ...

  2. 查看redis缓存大小_一个 bug 引发了服务器崩溃,对应 redis 的 key 回收原理你清楚了吗?...

    1 背景 项目中使用了 redis 做旁路缓存.读请求到来时,有以下操作:1.检查缓存,有则返回2.没有则读取数据库,将结果回写到缓存中. 写请求到来时,有以下操作:1.更新数据库 2.更新缓存(实际 ...

  3. 如何使用Redis Data Reveal(rdr)查看redis中每个key占用的内存大小

    如何使用Redis Data Reveal(rdr)查看redis中每个key占用的内存大小 一.为什么要查看redis中每个key的占用 二.怎么查看redis中每个key的占用 一.为什么要查看r ...

  4. [Redis]怎么查看以xx开头的所有key?有什么坑?BigKey问题?

    目录 1. keys 有坑 2. bigKey问题 2.1 big key 系列问题 什么是 big key 寻找big key(通过RDB分析,redis-cli分析) 优化big key 2.2  ...

  5. Redis String 类型操作及常用命令

    七个原则 Redis 是一个操作数据结构的语言工具,它提供基于 TCP 的协议以操作丰富的数据结构.在 Redis 中,数据结构这个词的意义不仅表示在某种数据结构上的操作,更包括了结构本身及这些操作的 ...

  6. 查看redis常用命令

    Redis常用命令 一. Connection连接 ping 使用客户端向 Redis 服务器发送一个 PING ,如果服务器运作正常的话,会返回一个 PONG 案例: 测试ping quit 请求服 ...

  7. 查看redis集群信息

    注:ip为安装redis的那台服务器(集群中的其中一台)的ip,password为redis的密码 集群相关信息查看 1.集群状态 redis-cli -h ip -p 9379 -a passwor ...

  8. Redis遍历、模糊匹配key的两个命令keys、scan(python使用Redis)

    Redis遍历.模糊匹配key的两个命令keys.scan(python使用Redis) (1)全量遍历–keys命令 获取Redis中的所有键: import redis pool=redis.Co ...

  9. RedisTemplate操作redis五大类型用法详解(springboot整合redis版本)

    1.案例说明 springboot整合redis之后,提供了操作redis的简便方式 通过通用对象redisTemplate方式操作String,Hash,List,Set SortSet五大数据类型 ...

最新文章

  1. alloc、init你弄懂50%了吗?
  2. Ubuntu12.10-amd64系统上搭建Android4.2(JellyBean)源码开发环境
  3. 在OpenEIM中每运行一个程序
  4. 防止电子邮件地址被搜索到的新方法
  5. 计算机大赛开场白,比赛主持开场白
  6. java 中张孝祥老师_谁有传智博客张孝祥老师的Java视频——必须是完整的
  7. bh1750采集流程图_多路BH1750光强检测系统的设计
  8. java九宫格案例讲解_Java实现九宫格的教程详解
  9. ESX4 安装前的考虑
  10. 像素是什么意思?一个像素有多大?告诉你像素和分辨率的关系!
  11. RSA的dp泄露 —— 【WUST-CTF2020】leak
  12. 两宋词人Top10排排座
  13. 面试时如何反问面试官
  14. tlp导致linux运行缓慢,通过TLP改善Linux中的电源使用 | MOS86
  15. 使用mybatis进行四表联查
  16. 不同 frame 之间调用 js 函数
  17. Rust学习笔记(13)——struct、Option和Box组合应用实现单向链表
  18. c++编写手机小游戏代码_经典小游戏大集合(C++ 源码)
  19. 你手机里的“微信”,可能是假的!
  20. Science | 植物和微生物的新途径:与共生微生物和病原微生物的相互作用驱动植物进化!...

热门文章

  1. Linux线程同步(三)---互斥锁源码分析
  2. oj 2143 图结构练习——最短路径的几种算法
  3. 寒假回归篇——C语言学习感悟2022.1.16
  4. 双十一最值得入手什么,盘点几款最实用的数码好物
  5. AddMvcCore,AddControllers,AddControllersWithViews,AddRazorPages的区别
  6. 安卓11客制需求:在设定时间开启深色主题模式,21点开启,次日8点关闭
  7. html中背景条纹效果,css3 条纹背景滚动效果
  8. SpringCloud与微服务Ⅴ --- Eureka服务注册与发现
  9. 什么 ? 陪玩都月入过忘拉~这不得python采集一下
  10. 04-深入浅出索引(上)