当前位置: 首页 > news >正文

【Redis从入门到精通】第07篇:Redis命令速查手册——工作中最常用的80条命令

上一篇【第06篇】Redis管道与批量操作——一次网络往返顶十次
下一篇【第08篇】Redis安全最佳实践——别让你的Redis裸奔在公网上


摘要

不管是刚入行的新手还是摸爬滚打多年的老鸟,都免不了时不时翻阅Redis命令文档。与其每次去官网查,不如把最常用的命令刻在脑子里——至少刻在这篇文章里。本文按照通用命令、String、Hash、List、Set、Sorted Set、服务器管理7大分类,整理了80+条日常开发中最常用的Redis命令,每条都配有完整语法、参数说明和可直接复制使用的示例。建议收藏,随时翻阅。


一、通用命令(General Commands)

通用命令适用于所有数据类型,属于Redis的基本功。这些命令不关心你存的是String还是Hash,它们操作的是key本身。

1.1 键的增删查

命令语法说明示例返回值
DELDEL key [key ...]删除一个或多个keyDEL user:1 user:2被删除的key数量
EXISTSEXISTS key [key ...]检查key是否存在(Redis 3.0.3起支持多key)EXISTS user:1存在的key数量
TYPETYPE key返回key存储的数据类型TYPE user:1string/hash/list/set/zset/none
KEYSKEYS pattern查找符合模式的key(生产慎用!KEYS user:*匹配的key列表
SCANSCAN cursor [MATCH pattern] [COUNT count]游标式迭代key(安全替代KEYS)SCAN 0 MATCH user:* COUNT 100新的游标+key数组
RANDOMKEYRANDOMKEY返回一个随机keyRANDOMKEY随机key或nil
RENAMERENAME key newkey重命名key(会覆盖掉newkey)RENAME old_name new_nameOK
DUMPDUMP key序列化key的值(用于迁移)DUMP mykey序列化后的二进制数据
RESTORERESTORE key ttl serialized-value [REPLACE]反序列化并恢复keyRESTORE mykey 0 "\x00\x03foo\x06..."OK
# 实战示例redis-cli SET user:1"张三"redis-cli SET user:2"李四"redis-cli SET product:1"iPhone"# 精确查找redis-cli EXISTS user:1# 返回: (integer) 1redis-cli EXISTS user:999# 返回: (integer) 0# 通配符查找(生产环境别这么干!)redis-cli KEYS"user:*"# 返回: user:1 user:2# 安全替代:SCANredis-cli SCAN0MATCH"user:*"COUNT10

⚠️ 注意:KEYS命令会遍历所有key,在数据量大的时候会导致Redis阻塞,线上环境绝对禁止使用!请用SCAN替代,它会分批返回结果,不会阻塞服务器。

1.2 键的过期时间

命令语法说明示例
EXPIREEXPIRE key seconds设置key在seconds秒后过期EXPIRE session:abc 3600
PEXPIREPEXPIRE key milliseconds设置key在milliseconds毫秒后过期PEXPIRE session:abc 5000
EXPIREATEXPIREAT key timestamp设置key在指定时间戳(秒)过期EXPIREAT session:abc 1716710400
PEXPIREATPEXPIREAT key milliseconds-timestamp设置key在指定毫秒时间戳过期PEXPIREAT session:abc 1716710400000
TTLTTL key查看key剩余生存时间(秒)TTL session:abc
PTTLPTTL key查看key剩余生存时间(毫秒)PTTL session:abc
PERSISTPERSIST key移除key的过期时间,使其永不过期PERSIST important:key
# 实战:实现一个验证码缓存redis-cli SET code:13800138000"8293"redis-cli EXPIRE code:13800138000300# 5分钟后过期redis-cli TTL code:13800138000# 返回: 287 (剩余287秒)redis-cli PERSIST code:13800138000# 取消过期(如果需要的话)
+──────────────────────────────────────────────────────+ │ EXPIRE 时间单位速查 │ +──────────────────────────────────────────────────────+ │ EXPIRE 秒 EXPIRE key 3600 │ │ PEXPIRE 毫秒 PEXPIRE key 5000 │ │ EXPIREAT 秒时间戳 EXPIREAT key 1716710400 │ │ PEXPIREAT 毫秒时间戳 PEXPIREAT key 1716710400000 │ │ TTL 秒返回 TTL key ( -1=永久, -2=不存在) │ │ PTTL 毫秒返回 PTTL key │ +──────────────────────────────────────────────────────+

1.3 键的内部信息

命令语法说明示例
OBJECT ENCODINGOBJECT ENCODING key查看key的内部编码OBJECT ENCODING mylist
OBJECT REFCOUNTOBJECT REFCOUNT key查看key的引用计数OBJECT REFCOUNT mykey
OBJECT IDLETIMEOBJECT IDLETIME key查看key的空闲秒数(未被访问的时间)OBJECT IDLETIME mykey
OBJECT FREQOBJECT FREQ key查看key的LFU访问频率计数(Redis 4.0+)OBJECT FREQ mykey
redis-cli SET small_int100redis-cli OBJECT ENCODING small_int# 返回: "int"(整数编码,省内存!)redis-cli SET short_str"hello"redis-cli OBJECT ENCODING short_str# 返回: "embstr"(短字符串编码)redis-cli SET long_str"一个超长字符串..."redis-cli OBJECT ENCODING long_str# 返回: "raw"(长字符串编码)redis-cli OBJECT IDLETIME small_int# 返回: 300(300秒没被访问了)

二、String命令

String是Redis中最基础的数据类型。虽然叫String,但实际上可以存数字、JSON、二进制——因为它本质是二进制安全的字节数组。最大可存512MB。

2.1 基础读写

命令语法说明示例
SETSET key value [EX seconds|PX milliseconds|NX|XX]设置key的值SET name "张三" EX 60
GETGET key获取key的值GET name
MSETMSET key value [key value ...]批量设置多个keyMSET a 1 b 2 c 3
MGETMGET key [key ...]批量获取多个keyMGET a b c
GETSETGETSET key value设置新值并返回旧值(6.2.0已弃用,用SET … GET)GETSET counter 0
SETNXSETNX key valuekey不存在时才设置(已弃用,用SET … NX)SETNX lock order:123
SETEXSETEX key seconds value设置值同时指定过期时间(已弃用,用SET … EX)SETEX code:vip 60 "a1b2c3"
PSETEXPSETEX key milliseconds value设置值同时指定毫秒过期时间PSETEX token 500
http://www.jsqmd.com/news/916653/

相关文章:

  • 基于Arduino与Blynk的物联网购物冲动拦截器:从硬件感知到云平台联动的完整实现
  • Translumo终极指南:如何免费实时翻译游戏和视频字幕
  • 基于ESP32与3D打印的智能潮汐时钟:硬件、软件与创意融合实践
  • 猫抓Cat-Catch终极实战:5个高级场景深度解析与性能优化完整指南
  • 智能边缘的迷思:从概念炒作到分布式智能的务实架构设计
  • 2026年五家一线GEO优化公司巡礼评测及企业选型避坑准则 - 资讯焦点
  • 告别繁琐编译!用OpenVINO 2023.3的预编译包5分钟搞定YOLOv8推理环境
  • 2021西门子杯初赛圆盘任务PLC工程包(TIA Portal V15.1)含HMI与标准运动控制模块
  • STM32CubeMX实战:用TIM2的PA1口输出PWM波驱动舵机(附完整代码)
  • 无弹簧跳跃腿:基于ODrive与齿条齿轮的精密运动控制实践
  • 从 0 到 1:用 AI Agent 自动审查团队代码质量
  • 清洁机器人内螺旋扫地路径Matlab可运行仿真代码包
  • 具身智能:让AI真正“理解”物理世界
  • 企业云盘移动办公实战:手机端高效处理文档的方法论
  • 深度解析R3nzSkin国服特供版:揭秘英雄联盟免费换肤技术
  • 终极HLS视频下载指南:如何轻松捕获在线流媒体内容
  • 3分钟搞定!RTL8821CE无线网卡在Linux下的高效解决方案
  • DIY泡沫RC飞机入门指南:从材料选型到首飞调试全流程
  • 免费在线法线贴图生成器:5分钟制作专业3D纹理的终极指南
  • 高压阀门、针型阀、高压球阀、高压止回阀、高压过滤器优质五大品牌选型推荐 - 资讯焦点
  • 3种方式下载抖音无水印视频:douyin_downloader完全指南
  • 电路设计全流程解析:从需求分析到PCB布局与调试实战
  • 基于Bharat Pi的RFID与OTP双因素智能门锁系统设计与实现
  • 基于GU50真空管自制特斯拉线圈:从哈特莱振荡器到高压电弧的完整指南
  • 基于树莓派与计算机视觉的手语翻译系统:从硬件选型到模型部署全解析
  • 佛山高端意式极简家具工厂实力排行:品质产能双维度实测 - 资讯焦点
  • WorkshopDL终极指南:解锁Steam创意工坊模组的三步解决方案
  • 汽车磁流变半主动悬架系统设计与集成控制策略【附仿真】
  • NE555无稳态多谐振荡器:从内部原理到PWM信号发生实战
  • Sunshine:重新定义自托管游戏串流的技术哲学与实践