命令介绍
Strings 族命令用于字符串值与整型/浮点型数值的基础读写操作,是最基本也是使用频率最高的数据类型命令。其核心命令按功能可分为以下四类:
基础读写与条件设置
SET / GET:设置和获取字符串值。
MSET / MGET:批量操作多个键。
GETSET:设置新值并返回旧值。
SETNX / SETEX / PSETEX:提供条件设置与带过期时间的设置,适用于分布式锁和缓存场景。
字符串操作
APPEND:在现有值末尾追加内容。
GETRANGE / SETRANGE:按字节偏移截取或覆盖子串。
STRLEN:返回值的字节长度。
原子计数
INCR / DECR / INCRBY / DECRBY / INCRBYFLOAT:对数值型字符串进行原子递增或递减,适用于计数器、速率限制器、库存扣减等场景。
高版本增强命令(Redis 6.2+ / Valkey 8.0+)
GETDEL:获取值后立即删除键。
GETEX:获取值的同时设置或移除过期时间。
LCS(Redis 7.0+):计算两个字符串值的最长公共子序列。
命令支持概览
基础命令:
append、decr、decrby、get、getrange、getset、incr、incrby、incrbyfloat、mget、mset、msetnx、psetex、setex、set、setnx、setrange、strlen,Redis 2.8 标准架构及 4.0、5.0、6.2、7.0 版本、Valkey 8.0、9.0 的标准架构与集群架构均支持。6.2+ 新增命令(2 个):
getdel、getex,仅 Redis 6.2、7.0 版本及 Valkey 8.0、9.0 版本支持。7.0+ 新增命令(2 个):
lcs、stralgo,仅 Redis 7.0 版本及 Valkey 8.0、9.0 版本支持。跨 Slot 限制:集群架构下,
mget、mset 支持跨 Slot 操作;msetnx 不支持跨 Slot 操作。命令兼容性矩阵
Strings 族命令在各版本与架构下的支持情况如下表所示(✓ 表示支持,✗ 表示不支持,— 表示该命令不存在跨 Slot 访问场景)。
说明:
Redis 7.0及 Valkey 8.0、9.0中,
set 命令新增 NX 和 GET 参数。lcs 命令用于返回两个 Key 值的最长公共子序列。命令 | Valkey 9.0标准架构 | Valkey 9.0集群架构 | Redis 7.0/Valkey 8.0标准架构 | Redis 7.0/Valkey 8.0集群架构 | Redis 6.2标准架构 | Redis 6.2集群架构 | Redis 5.0标准架构 | Redis 5.0集群架构 | Redis 4.0标准架构 | Redis 4.0集群架构 | Redis 2.8标准架构 | 集群架构跨 Slot 支持 |
append | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
decr | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
decrby | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
get | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
getrange | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
getset | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
incr | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
incrby | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
incrbyfloat | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
mget | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
mset | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
msetnx | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ |
psetex | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
setex | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
set | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
setnx | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
setrange | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
strlen | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
stralgo | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | — |
getdel | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | — |
getex | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | — |
lcs | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | — |