当前位置: 首页 > 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.gsyq.cn/news/1427966.html

相关文章:

  • 猫抓Cat-Catch终极实战:5个高级场景深度解析与性能优化完整指南
  • 无弹簧跳跃腿:基于ODrive与齿条齿轮的精密运动控制实践
  • 清洁机器人内螺旋扫地路径Matlab可运行仿真代码包
  • DIY泡沫RC飞机入门指南:从材料选型到首飞调试全流程
  • 企业云盘移动办公实战:手机端高效处理文档的方法论
  • 3分钟搞定!RTL8821CE无线网卡在Linux下的高效解决方案
  • 基于GU50真空管自制特斯拉线圈:从哈特莱振荡器到高压电弧的完整指南
  • Sunshine:重新定义自托管游戏串流的技术哲学与实践
  • 无锡房屋买卖合同律师推荐:五位专业律师执业情况深度梳理 - 律界观察
  • 基于Arduino的图形化包络发生器:从硬件选型到内存优化实战
  • 终极网络资源嗅探利器:res-downloader跨平台下载全攻略
  • 吴恩达Coursera深度学习笔记:手把手推导单隐层神经网络的向量化实现(附Python代码)
  • 远程办公神器:如何用USB Network Gate把家里的打印机和扫描仪共享给公司电脑(Win/Mac跨平台教程)
  • 工程师思维重构简历:从需求分析到CI/CD的求职系统设计
  • 拯救者Y7000老用户必看:手把手教你无损迁移系统到新M.2固态(附傲梅备份+老毛桃PE详细流程)
  • Arduino Simon Says游戏制作:从电路设计到状态机编程的嵌入式实战
  • ESP32驱动SSD1306 OLED播放GIF动画:从图像处理到代码实现全解析
  • 如何快速搭建语音识别系统:Whisper-WebUI完整指南
  • 海鲜新鲜的日照海鲜餐厅推荐哪家
  • 2026年五家中国GEO公司排名市场版图深度透析选商建议 - 资讯焦点
  • 如何重新定义数字记忆主权:WeChatMsg从数据提取到情感智能的颠覆性实践
  • 广东省高州市寄件省钱指南:4 个全国低价上门取件平台,小件快递大件物流全覆盖 - 时讯资讯
  • WarcraftHelper:三大神器让老魔兽焕发新生,告别8MB限制、宽屏变形和中文乱码!
  • Perseus终极指南:3步解锁《碧蓝航线》全皮肤功能
  • 基于ESP32的双重验证智能门锁:指纹与RFID融合的物联网安防实践
  • C166微控制器MAC单元开发指南与优化实践
  • 如何免费永久保存微信聊天记录:WeChatMsg开源工具完整指南
  • Lindy代码生成自动化终极 checklist:22项熵控指标+5级可信度分级(内部团队禁传版,限首发24小时领取)
  • 杭州文亮高中升学:助力高考冲刺本科
  • 2026年昆明代理记账与云南工商变更全生命周期企业财税服务实力较量攻略 - 企业名录优选推荐