Redis 字符串类型核心命令详解
Redis 的 String 类型是基础且功能强大的数据结构。它不仅是简单的文本存储,还能直接进行数值运算,非常适合做计数器、分布式锁或缓存热点数据。
基础设置与获取
最常用的 SET 和 GET 命令。SET 支持设置过期时间,这对缓存清理至关重要。
set key value [ex 秒数] | [px 毫秒数] [nx] | [xx]
这里有两个标志位需要注意:nx 表示仅当 Key 不存在时写入,常用于防止覆盖;xx 则相反,仅在 Key 存在时更新。实际开发中,用 nx 实现简单的分布式锁很常见。
获取值直接用 get key,简单高效。
批量操作
处理多个键值对时,mset 和 mget 能减少网络往返次数。
mset key1 value1 key2 value2
mget key1 key2...
虽然它们不是严格事务,但在单线程模型下通常是原子的,适合批量初始化配置。
字符串截取与修改
如果不想替换整个字符串,可以用 setrange 从指定偏移量开始覆盖。配合 getrange 可以提取子串,下标支持负数(如 -1 代表最后一个字符)。
setrange key offset value
getrange key start stop
这种操作在日志分析或特定协议解析时很有用。
数值运算
String 类型支持原子性的加减操作,无需先 GET 再 SET,避免并发竞争。
incr key # 加 1
decr key # 减 1
incrby key number # 加指定整数
incrbyfloat key floatnumber # 加浮点数
decrby key number # 减指定整数
注意:数值溢出会报错,且这些命令只针对数字字符串有效。如果是非数字内容,操作会失败。
掌握这些命令,基本能覆盖 90% 的日常 Redis 字符串需求。建议在生产环境使用前先在测试集群验证行为。

