当前位置:首页 > 技术 > 正文内容

Redis 里搜索 key 的几种方式

代码老兵 技术 14

一、KEYS

KEYS *

按模式搜索:

KEYS user:*

️ 问题

  • 会阻塞 Redis

  • 数据多时会卡死

  • 生产环境应该避免使用

只适合:

  • 本地开发

  • key 数量很少


二、✓ 推荐:SCAN(安全方式)

1. 基础用法

SCAN 0

返回:

1) "next_cursor"
2) 1) "key1"
  2) "key2"
  • 第一个值是游标

  • 第二个是 key 列表

  • 当游标返回 0 时结束


2. 带模式匹配

SCAN 0 MATCH user:* COUNT 100

解释:

  • MATCH → 模式

  • COUNT → 每次扫描数量(不是精确值)


三、最常用(推荐写法)

直接用 redis-cli 封装好的方式:

redis-cli --scan

按模式:

redis-cli --scan --pattern "user:*"

这个命令内部就是用 SCAN 实现的,安全不阻塞。


四、统计某类 key 数量

redis-cli --scan --pattern "user:*" | wc -l

五、删除匹配的 key(安全)

️ 千万别用:

redis-cli KEYS "user:*" | xargs redis-cli DEL

正确方式:

redis-cli --scan --pattern "user:*" | xargs -n 100 redis-cli DEL

数据很多时更安全:

redis-cli --scan --pattern "user:*" | xargs -L 100 redis-cli DEL

六、搜索指定类型的 key

先查 key:

redis-cli --scan --pattern "user:*"

再看类型:

TYPE keyname

七、查找大 key(排查卡顿)

redis-cli --bigkeys

八、如果是集群模式

必须加:

redis-cli -c --scan --pattern "user:*"

九、模式匹配规则

Redis 使用 glob 风格:

表达式说明
*任意字符
?单个字符
[abc]a 或 b 或 c
user:*user: 开头


标签: redis-cliredis

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。