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

Redis常用命令大全:从入门到精通

Redis的命令按功能可以分为几个大类,下面整理了最常用的一些命令。

🔑 通用命令

这些命令不针对特定数据类型,用于日常管理和操作。

命令作用示例
PING测试与服务器的连接是否正常,正常会返回PONGPING
SELECT index切换到指定的数据库(默认有16个,索引从0开始)。SELECT 1
KEYS pattern查找所有符合给定模式(pattern)的key。生产环境慎用,可能阻塞服务KEYS user:*
SCAN cursor迭代当前数据库中的key,是KEYS命令的安全替代方案。SCAN 0 MATCH user:* COUNT 10
EXISTS key检查一个或多个key是否存在。EXISTS myKey
DEL key删除指定的一个或多个key。DEL myKey yourKey
TYPE key返回key所存储的值的数据类型。TYPE myKey
EXPIRE key seconds为给定的key设置过期时间,单位是秒。EXPIRE session:123 1800
TTL key以秒为单位,返回给定key的剩余生存时间。TTL session:123
PERSIST key移除给定key的过期时间,使其永不过期。PERSIST session:123

📊 各数据类型专属命令

Redis支持多种数据结构,每种都有其专用的命令。

1. 字符串 (String)

最基础的类型,适合缓存、计数器等。

命令作用示例
SET key value设置指定key的值。SET user:1 "Alice"
GET key获取指定key的值。GET user:1
MSET key value [key value ...]批量设置多个key的值。MSET name "Bob" age "30"
MGET key [key ...]批量获取多个key的值。MGET name age
INCR key将key中存储的数字值加1。INCR page_views
DECR key将key中存储的数字值减1。DECR stock
INCRBY key increment将key中存储的数字值增加指定的步长。INCRBY counter 10
APPEND key value如果key已经存在,将value追加到原值的末尾。APPEND msg " world"
STRLEN key返回key所存储的字符串值的长度。STRLEN msg
2. 哈希 (Hash)

适合存储对象,如用户信息、商品详情等。

命令作用示例
HSET key field value为哈希表中的字段赋值。HSET user:1000 name "Alice"
HGET key field获取哈希表中指定字段的值。HGET user:1000 name
HMSET key field value [field value ...]批量设置哈希表中的多个字段。HMSET user:1000 name "Alice" age "25"
HMGET key field [field ...]批量获取哈希表中多个字段的值。HMGET user:1000 name age
HGETALL key获取哈希表中所有的字段和值。HGETALL user:1000
HDEL key field删除哈希表中的一个或多个字段。HDEL user:1000 age
HINCRBY key field increment为哈希表中指定字段的整数值加上增量。HINCRBY user:1000 score 5
HEXISTS key field判断哈希表中是否存在某个字段。HEXISTS user:1000 name
HLEN key获取哈希表中字段的数量。HLEN user:1000
3. 列表 (List)

双向链表结构,适合消息队列、最新消息列表等场景。

命令作用示例
LPUSH key value [value ...]将一个或多个值插入到列表的头部(左侧)。LPUSH tasks "task1"
RPUSH key value [value ...]将一个或多个值插入到列表的尾部(右侧)。RPUSH tasks "task3"
LPOP key移除并返回列表头部的元素。LPOP tasks
RPOP key移除并返回列表尾部的元素。RPOP tasks
LRANGE key start stop返回列表指定区间内的元素(0表示第一个,-1表示最后一个)。LRANGE messages 0 -1
BLPOP key [key ...] timeout阻塞式地从列表头部弹出元素,若列表为空则等待超时。BLPOP alerts 30
4. 集合 (Set)

无序且唯一的集合,适合去重、共同好友等场景。

命令作用示例
SADD key member [member ...]向集合中添加一个或多个成员。SADD tags "redis" "db"
SMEMBERS key返回集合中的所有成员。SMEMBERS tags
SISMEMBER key member判断成员是否存在于集合中。SISMEMBER tags "redis"
SREM key member [member ...]移除集合中的一个或多个成员。SREM tags "db"
SINTER key [key ...]返回多个集合的交集。SINTER group1 group2
SUNION key [key ...]返回多个集合的并集。SUNION all_users
SDIFF key [key ...]返回第一个集合与其他集合的差集。SDIFF group1 group2
SCARD key获取集合中成员的数量。SCARD tags
SPOP key [count]随机移除并返回集合中的一个或多个成员。SPOP lottery 3
5. 有序集合 (Sorted Set)

每个元素关联一个分数,按分数排序,适合排行榜等场景。

命令作用示例
ZADD key score member [score member ...]向有序集合中添加一个或多个成员,或更新其分数。ZADD leaderboard 100 "PlayerA"
ZRANGE key start stop [WITHSCORES]按分数从小到大,返回指定索引范围内的成员。ZRANGE leaderboard 0 2 WITHSCORES
ZREVRANGE key start stop [WITHSCORES]按分数从大到小,返回指定索引范围内的成员。ZREVRANGE leaderboard 0 2
ZREM key member [member ...]移除有序集合中的一个或多个成员。ZREM leaderboard "PlayerB"
ZINCRBY key increment member为有序集合中指定成员的分数增加增量。ZINCRBY leaderboard 10 "PlayerA"
ZRANK key member返回成员按分数从小到大排序的排名(从0开始)。ZRANK leaderboard "PlayerA"
ZCARD key获取有序集合中成员的数量。ZCARD leaderboard
ZCOUNT key min max计算分数在指定区间内的成员数量。ZCOUNT leaderboard 50 100

🛠️ 服务器与高级功能

除了数据操作,Redis还提供了丰富的管理和高级功能命令。

命令作用示例
服务器管理
DBSIZE返回当前数据库中key的数量。DBSIZE
FLUSHDB清空当前数据库中的所有key(谨慎操作)。FLUSHDB
FLUSHALL清空所有数据库中的所有key(非常谨慎操作)。FLUSHALL
INFO [section]返回关于Redis服务器的各种信息和统计。INFO memory
CONFIG GET parameter获取Redis服务器的配置参数。CONFIG GET maxmemory
持久化
SAVE同步执行,将数据保存到磁盘,会阻塞主线程。SAVE
BGSAVE异步执行,在后台将数据保存到磁盘,不阻塞主线程。BGSAVE
事务
MULTI标记一个事务块的开始。MULTI
EXEC执行所有在MULTI之后入队的命令。EXEC
DISCARD取消事务,放弃执行事务块内的所有命令。DISCARD
发布订阅
SUBSCRIBE channel订阅给定的一个或多个频道。SUBSCRIBE news
PUBLISH channel message向指定频道发送消息。PUBLISH news "Hello"

💡 使用建议

  • 生产环境慎用KEYS:它可能会阻塞Redis服务,线上环境建议使用SCAN命令进行迭代。
  • 清空操作极其危险FLUSHDBFLUSHALL命令会永久删除数据,在执行前请务必确认。
  • 性能与安全MONITOR等调试命令会影响性能,建议仅在必要时使用。
http://www.jsqmd.com/news/1091628/

相关文章:

  • Rust的std--mem--MaybeUninit:延迟初始化的安全抽象
  • 【STL】iostream 编程:输入/输出替换选项
  • 卫星合成孔径雷达技术解析 穿透云雨雾霾实现全天时对地探测
  • STM32CubeMX中的CAN配置参数的解释
  • 为什么92%的ChatGPT Plus订阅在第3个月自动降级?国内用户必须知道的OpenAI账户健康度监测协议(含自动续费预警脚本开源)
  • 如何在Windows上快速搭建AirPlay 2投屏服务器:完整开源解决方案
  • Spring Boot 过滤器链执行顺序
  • ⚡SimpleDAO 企业实战教程(06) mergeParams 多组条件合并
  • GPT 低价订阅真的划算吗?长期用户先看这几个风险
  • 百考通帮你去AI化保留原创灵魂
  • 基于Delaunay三角剖分与排斥算法的Fillinger智能填充技术深度解析
  • 学习的意义是什么?
  • DLSS Swapper终极指南:一键智能管理游戏图形技术,彻底释放显卡性能
  • java se Java SE基础不牢?Eclipse这工具能让你从菜鸟飞成老鸟
  • 软件追踪管理中的分布式跟踪
  • ncmdump终极指南:一键解锁网易云音乐NCM加密格式,重获音乐自由
  • 想要“无感知复用“?架构里必须有闲置计时器和会话保持机制
  • 2026年番禺成人如何选择优质口才培训机构
  • 告别命令行:用MongoDB Compass图形化工具轻松玩转数据增删改查与迁移
  • 微服务架构下的HTTP请求头“大小写”丢失排查之旅
  • 理解 Agent 中的 Slash Command:从概念到自定义命令实践
  • 开放集成体系:即时通讯成为效率引擎
  • 如何快速掌握时间序列预测:iTransformer终极解决方案指南
  • 苹果设备激活锁终极解决方案:applera1n图形化工具完整指南
  • 在 Django 中落地领域驱动设计 (DDD) 与 Service 层抽离
  • 零基础非技术员工怕学不会AI?从日常办公任务自动化开始构建个人工作流的实战指南
  • 从报文交换到纳秒对齐:深入解析gPTP的硬件级时间同步机制
  • [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
  • 服务治理实践
  • 每月68元的专业版豆包值不值?实测:帮做网站、汇总信息,效率惊人!