菜鸟科技网

Redis命令那么多,怎么快速查到想要的?

Redis命令查询是开发和运维人员日常工作中不可或缺的技能,掌握Redis命令不仅能高效操作数据,还能优化系统性能,Redis作为高性能的内存数据库,支持丰富的数据结构,每种结构都有对应的命令集,本文将详细解析Redis常用命令的分类、语法及使用场景,帮助读者快速查询和应用。

Redis命令那么多,怎么快速查到想要的?-图1
(图片来源网络,侵删)

键值操作命令

键值操作是Redis最基础的功能,主要用于管理键的生命周期和基本信息,常用命令包括:

  • SET:设置键值,语法为SET key value [EX seconds|PX milliseconds|EXAT timestamp|PXAT milliseconds-timestamp|KEEPTTL],例如SET user:1001 "Alice" EX 3600表示设置键user:1001的值为"Alice",并设置3600秒过期。
  • GET:获取键值,语法为GET key,若键不存在则返回nil
  • DEL:删除键,语法为DEL key [key ...],支持批量删除,例如DEL key1 key2 key3
  • EXISTS:检查键是否存在,语法为EXISTS key,返回1(存在)或0(不存在)。
  • TTL:查看键的剩余生存时间,语法为TTL key,返回剩余秒数,若键不存在返回-2,若键永不过期返回-1。
  • KEYS:模糊匹配键,语法为KEYS pattern,例如KEYS user:*匹配所有以"user:"开头的键,但生产环境慎用,可能阻塞服务器。

字符串操作命令

字符串是Redis最简单的数据结构,常用于缓存、计数器等场景,常用命令包括:

  • INCR:将键的值加1,语法为INCR key,若键不存在则初始化为0后加1,例如INCR visit_count用于计数。
  • DECR:将键的值减1,语法为DECR key,与INCR逻辑相反。
  • INCRBY:按指定增量增加,语法为INCRBY key increment,例如INCRBY score 5score加5。
  • APPEND:追加值到字符串末尾,语法为APPEND key value,若键不存在则创建并赋值。
  • STRLEN:获取字符串长度,语法为STRLEN key,例如STRLEN message返回message的字符长度。

列表操作命令

列表是双向链表结构,支持头尾操作,常用于消息队列、任务列表等,常用命令包括:

  • LPUSH:从左侧插入元素,语法为LPUSH key value [value ...],例如LPUSH tasks "task1"将"task1"插入列表左侧。
  • RPUSH:从右侧插入元素,语法为RPUSH key value [value ...],与LPUSH方向相反。
  • LPOP:从左侧弹出元素,语法为LPOP key,返回并移除列表最左侧元素。
  • RPOP:从右侧弹出元素,语法为RPOP key,与LPOP方向相反。
  • LRANGE:获取列表片段,语法为LRANGE key start stop,例如LRANGE tasks 0 -1返回整个列表,0表示起始位置,-1表示结束位置。

哈希操作命令

哈希是键值对集合,适合存储对象类型数据,如用户信息,常用命令包括:

Redis命令那么多,怎么快速查到想要的?-图2
(图片来源网络,侵删)
  • HSET:设置哈希字段值,语法为HSET key field value [field value ...],例如HSET user:1001 name "Bob" age 25
  • HGET:获取哈希字段值,语法为HGET key field,例如HGET user:1001 name返回"Bob"。
  • HGETALL:获取哈希所有字段和值,语法为HGETALL key
  • HDEL:删除哈希字段,语法为HDEL key field [field ...],例如HDEL user:1001 age删除age字段。
  • HEXISTS:检查哈希字段是否存在,语法为HEXISTS key field,返回1(存在)或0(不存在)。

集合操作命令

集合是无序且不重复的元素集合,支持交集、并集等操作,常用命令包括:

  • SADD:向集合添加元素,语法为SADD key member [member ...],例如SADD tags "redis" "database"
  • SMEMBERS:获取集合所有元素,语法为SMEMBERS key
  • SREM:从集合移除元素,语法为SREM key member [member ...]
  • SINTER:计算多个集合的交集,语法为SINTER key [key ...],例如SINTER set1 set2返回两个集合的交集。
  • SUNION:计算多个集合的并集,语法为SUNION key [key ...]

有序集合操作命令

有序集合是带分数的集合,元素按分数排序,常用于排行榜,常用命令包括:

  • ZADD:添加有序集合元素,语法为ZADD key [NX|XX] [CH] [INCR] score member [score member ...],例如ZADD leaderboard 100 "player1"添加"player1"分数为100。
  • ZRANGE:获取指定排名区间的元素,语法为ZRANGE key start stop [WITHSCORES],例如ZRANGE leaderboard 0 4 WITHSCORES返回前5名及分数。
  • ZSCORE:获取元素分数,语法为ZSCORE key member,例如ZSCORE leaderboard "player1"返回"player1"的分数。
  • ZREM:移除元素,语法为ZREM key member [member ...]

其他常用命令

  • EXPIRE:设置键的过期时间,语法为EXPIRE key seconds,例如EXPIRE temp_data 60设置60秒后过期。
  • TYPE:查看键的数据类型,语法为TYPE key,返回stringhashlist等。
  • SCAN:增量遍历键,语法为SCAN cursor [MATCH pattern] [COUNT count],避免KEYS命令阻塞。

表格:Redis常用命令速查

命令分类 命令 语法 功能描述
键值操作 SET SET key value [EX seconds] 设置键值及过期时间
字符串 INCR INCR key 键值加1
列表 LPUSH LPUSH key value 左侧插入元素
哈希 HSET HSET key field value 设置哈希字段值
集合 SADD SADD key member 添加集合元素
有序集合 ZADD ZADD key score member 添加有序集合元素
通用 TTL TTL key 查看剩余过期时间

相关问答FAQs

Q1: Redis中如何批量删除匹配的键?
A1: 可以结合KEYSDEL命令,但KEYS命令在键较多时可能阻塞服务器,生产环境推荐使用SCAN命令遍历+DEL删除,SCAN 0 MATCH user:* COUNT 100,然后对返回的键执行DEL,Redis 4.0+支持UNLINK命令,异步删除键,性能更优。

Q2: 如何查看Redis中某个键的数据类型?
A2: 使用TYPE命令,语法为TYPE key,例如TYPE user:1001,若键是哈希则返回hash,若是字符串则返回string,若键不存在,返回none,通过TYPE可以快速确认键的数据结构,避免误用命令导致错误。

Redis命令那么多,怎么快速查到想要的?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇