Redis命令大全
redis-cli 命令详解从连接到高阶实战redis-cli 是 Redis 官方提供的命令行客户端是与 Redis 实例交互最直接、最灵活的工具。它既可以在命令行模式下直接执行单条命令后退出也可以进入交互式 REPL 模式进行连续操作还提供了监控、延迟分析、键空间扫描、数据导入导出等特殊模式。下面从连接、数据类型操作到高阶技巧系统梳理 redis-cli 的核心用法。一、连接 Redis从本地到远程默认情况下redis-cli 连接 127.0.0.1 的 6379 端口。在本地开发环境中直接输入redis-cli即可进入交互模式。连接远程或受保护的实例时常用参数如下参数作用示例-h指定主机名或 IP 地址redis-cli -h 192.168.1.100-p指定端口号默认 6379redis-cli -p 6380-a提供密码进行认证redis-cli -a mypassword-n选择数据库编号0-15redis-cli -n 2-c连接 Cluster 集群时启用重定向redis-cli -c -h node1 -p 6379--tls启用 SSL/TLS 加密连接redis-cli --tls -h host -p 6380连接 Cluster 集群时必须加上-c参数否则命令无法正确路由到目标节点。此外也可以使用 URI 格式一次性传入连接信息redis-cli-uredis://username:passwordhost:6379安全提示在生产环境中不要在命令行中通过-a直接传递密码因为密码会出现在 shell 历史和进程列表中。推荐使用REDISCLI_AUTH环境变量来自动向 redis-cli 提供密码。二、五大核心数据类型的命令速查Redis 支持 String、List、Hash、Set、ZSet 五种核心数据类型。redis-cli 在交互模式下提供 Tab 补全和命令历史输入命令后按回车即可执行并查看类型化回复。2.1 String字符串String 是最基础的类型适合缓存、计数器、分布式锁等场景。SET mykeyHello# 设置键值O(1)GET mykey# 获取值键不存在返回 nilMSET k1 v1 k2 v2# 原子批量设置MGET k1 k2 k3# 批量获取INCR counter# 自增 1键不存在时先置 0INCRBY counter10# 自增指定步长SETNX lock_keylocked# 仅当键不存在时设置分布式锁核心SETEX session3600data# 设置值并指定秒级过期时间APPEND mykey World# 在值末尾追加STRLEN mykey# 获取值长度SET命令还支持EX秒级过期、PX毫秒级过期、NX仅键不存在时设置、XX仅键存在时设置等选项一条命令即可完成“设置值过期时间存在性判断”的组合操作。2.2 List列表List 是双向链表结构适合消息队列、最新动态列表等场景。LPUSH mylistab# 从头部插入RPUSH mylistc# 从尾部插入LPOP mylist# 弹出头部元素RPOP mylist# 弹出尾部元素LRANGE mylist0-1# 获取全部元素0 为头-1 为尾LLEN mylist# 获取元素个数LTRIM mylist099# 仅保留前 100 个元素BLPOP mylist30# 阻塞式弹出最多等待 30 秒RPOPLPUSH src dst# 原子地将 src 尾部元素移到 dst 头部BLPOP和BRPOP的阻塞特性使其成为实现轻量级消息队列的理想选择消费者可以阻塞等待而不必轮询。2.3 Hash哈希Hash 适合存储对象的多个字段比如用户信息、商品属性。HSET user:1 nameAliceage30# 设置一个或多个字段HGET user:1 name# 获取单个字段HMSET user:1 nameAliceage30# 批量设置Redis 4.0 可直接用 HSETHMGET user:1 name age# 批量获取HGETALL user:1# 获取所有字段和值HINCRBY user:1 age1# 字段值自增HEXISTS user:1 email# 判断字段是否存在HDEL user:1 age# 删除字段HLEN user:1# 获取字段数量2.4 Set集合Set 是无序不重复集合适合标签、去重、共同好友等场景。SADD tagsredisnosql# 添加元素SREM tagsnosql# 删除元素SISMEMBER tagsredis# 判断元素是否存在SMEMBERS tags# 获取所有元素SCARD tags# 获取元素个数SINTER set1 set2# 交集SUNION set1 set2# 并集SDIFF set1 set2# 差集set1 中有而 set2 中没有SRANDMEMBER tags2# 随机获取 2 个元素不删除SPOP tags1# 随机移除并返回 1 个元素2.5 ZSet有序集合ZSet 为每个元素关联一个 score自动按 score 排序是实现排行榜的核心数据结构。ZADD leaderboard100Alice85Bob# 添加元素及分数ZRANGE leaderboard0-1WITHSCORES# 按分数升序获取ZREVRANGE leaderboard09WITHSCORES# 按分数降序获取前 10 名ZRANGEBYSCORE leaderboard80100# 按分数范围筛选ZRANK leaderboardAlice# 获取升序排名0 为最小ZREVRANK leaderboardAlice# 获取降序排名ZINCRBY leaderboard10Alice# 增加分数ZCARD leaderboard# 获取元素总数ZCOUNT leaderboard80100# 统计分数范围内的元素个数三、通用键管理与数据库操作跨数据类型的通用命令在日常运维中同样高频EXISTS key# 判断键是否存在TYPE key# 查看键的数据类型DEL key# 删除键EXPIRE key3600# 设置过期时间秒TTL key# 查看剩余生存时间PERSIST key# 移除过期时间SCAN0MATCH user:* COUNT100# 游标迭代扫描生产环境安全INFO keyspace# 查看各数据库的键数量DBSIZE# 当前数据库键总数关于键遍历有一个重要的生产禁忌KEYS *会一次性扫描所有键在键数量大时会阻塞 Redis 服务器。生产环境中应始终使用SCAN系列命令进行渐进式迭代。SCAN采用游标机制每次返回一批元素和一个新游标当游标返回 0 时表示遍历完成。需要注意的是SCAN不保证元素不重复应用层需自行处理去重。四、高阶实战技巧4.1 命令行直接执行与输出控制redis-cli 支持将命令作为参数直接传入执行后立即退出非常适合脚本化redis-cli INCR mycounter# 输出(integer) 8redis-cli GET mykey# 输出Hello当输出重定向到文件或管道时redis-cli 会自动切换到原始输出模式省略(integer)、等类型标识。也可以用--raw强制原始输出或用--no-raw强制人类可读输出。4.2 批量数据导入–pipe--pipe是向 Redis 批量加载数据最快的方式。它使用 Redis 协议直接将命令流式传输到服务器速度远高于逐条执行。典型用法是将包含 Redis 协议格式命令的文件通过管道传入catcommands.txt|redis-cli--pipe4.3 大键扫描与内存分析在排查性能问题时大键占用内存过多的键往往是罪魁祸首。redis-cli 提供了内置的扫描模式redis-cli--bigkeys# 扫描各数据类型中最大的键redis-cli--memkeys# 按内存占用扫描键redis-cli--bigkeys--memkeys# 组合使用--bigkeys基于SCAN实现不会阻塞服务器适合在生产环境中定期巡检。4.4 发布订阅redis-cli 可以直接进行发布订阅测试。打开一个终端订阅频道redis-cli SUBSCRIBE news在另一个终端发布消息redis-cli PUBLISH newsBreaking: Redis 8.0 released订阅端会实时收到消息。需要注意的是进入订阅状态的客户端无法执行除SUBSCRIBE、UNSUBSCRIBE、PSUBSCRIBE、PUNSUBSCRIBE之外的命令redis-cli 中需要按Ctrl-C退出订阅状态。4.5 执行 Lua 脚本通过EVAL或--eval可以在 redis-cli 中执行 Lua 脚本实现原子性的复杂逻辑# 内联执行redis-cli EVALreturn redis.call(SET, KEYS[1], ARGV[1])1mykeyHello# 从文件加载执行redis-cli--evalscript.lua key1 key2 , arg1 arg2Lua 脚本在 Redis 中作为一个整体执行期间不会被其他命令中断天然具备原子性适合实现“检查-设置”类的复合操作。五、生产环境安全与性能诊断5.1 安全禁忌在使用 redis-cli 操作生产实例时有几条不可逾越的红线不要在命令行中用-a传递密码改用REDISCLI_AUTH环境变量不要在生产环境执行KEYS *用SCAN替代FLUSHALL/FLUSHDB不可逆执行前先用CLIENT LIST或INFO keyspace确认目标数据库MONITOR会记录所有命令包括敏感数据绝不在生产服务器上长时间运行。5.2 延迟诊断redis-cli 内置了多种延迟检测模式redis-cli--latency# 持续测量并显示延迟统计redis-cli --latency-history# 按时间窗口分段显示延迟变化redis-cli --latency-dist# 以 ASCII 频谱图展示延迟分布redis-cli --intrinsic-latency30# 测量本机固有延迟30 秒采样--intrinsic-latency测量的是 Redis 进程所在机器的本机延迟下限用于判断延迟问题是否由系统本身导致。5.3 慢查询日志Redis 的慢查询日志记录执行时间超过阈值的命令。通过 redis-cli 查询和清理redis-cli SLOWLOG GET10# 查看最近 10 条慢查询redis-cli SLOWLOG RESET# 清空慢查询日志redis-cli SLOWLOG LEN# 查看慢查询条数慢查询阈值的配置项为slowlog-log-slower-than单位微秒默认值为 10000即 10 毫秒。结语redis-cli 远不止是一个“输入命令看结果”的简单工具。从基础的数据类型操作到--pipe批量导入、--bigkeys大键扫描、--latency延迟诊断再到 Lua 脚本执行和发布订阅测试它覆盖了 Redis 日常开发与运维的绝大多数场景。掌握这些命令的用法和适用边界尤其是在生产环境中遵守安全规范才能让 redis-cli 真正成为高效而可靠的工具。

相关新闻

T型、π型、L型滤波拓扑选型与截止频率计算实战指南

T型、π型、L型滤波拓扑选型与截止频率计算实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 8:45:00 阅读更多 →
NMOS高边开关驱动方案全解析:从自举到电荷泵

NMOS高边开关驱动方案全解析:从自举到电荷泵

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 8:45:00 阅读更多 →
基于Arduino的自制乒乓球发球机:从机械设计到PID控制

基于Arduino的自制乒乓球发球机:从机械设计到PID控制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 8:44:00 阅读更多 →

最新新闻

RedwoodJS 官方教程开篇导读:从零构建一个数据库驱动的全栈博客应用

RedwoodJS 官方教程开篇导读:从零构建一个数据库驱动的全栈博客应用

后端前端Web框架开发工具 【免费下载链接】redwood RedwoodGraphQL 项目地址: https://gitcode.com/gh_mirrors/re/redwood 点击查看 免费下载 这篇导读基于 Redwood 仓库中 version-4.x 的教程前言 展开。RedwoodJS 是一个"有主见"(opiniona…

2026/9/24 9:20:34 阅读更多 →
了解STM32最小系统核心板

了解STM32最小系统核心板

STM32F103C8T6 多端口流水灯实验报告 STM32F103C8T6 多端口流水灯实验报告 博客发布 / 学习通提交 Markdown,可直接导出 PDF;配套代码、git 操作说明,完整满足作业要求 芯片:STM32F103C8T6(Blue Pill 蓝板最小系统&…

2026/9/24 9:20:33 阅读更多 →
RV1106嵌入式AI开发:从环境搭建到NPU部署全链路实践

RV1106嵌入式AI开发:从环境搭建到NPU部署全链路实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 9:19:32 阅读更多 →
AI辅助技术设计:信任分级与判断锚点实战

AI辅助技术设计:信任分级与判断锚点实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 9:19:32 阅读更多 →
12路锁控板RS485通讯协议详解:帧结构、指令集与调试实战

12路锁控板RS485通讯协议详解:帧结构、指令集与调试实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 9:19:32 阅读更多 →
高通9008救砖实操:QFIL从驱动安装到分区刷写全流程

高通9008救砖实操:QFIL从驱动安装到分区刷写全流程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 9:19:32 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/23 4:55:02 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/23 9:53:41 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/23 9:53:40 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/23 9:53:40 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/23 9:53:40 阅读更多 →