Redis 操作 String 类型数据的常用方法
Redis 的 String 类型是最基本的数据类型,可以存储字符串、整数或浮点数。以下是操作 String 类型的主要方法:
一、基本操作命令
1. 设置值
- SET key value:设置指定 key 的值
SET name "John"
- SETNX key value:当 key 不存在时设置值(原子性操作)
- SETNX lock_key 1 # 常用于实现分布式锁
- SETEX key seconds value:设置值并指定过期时间(秒)
SETEX session_token 3600 "abc123"
2. 获取值
- GET key:获取指定 key 的值
GET name # 返回 "John"
- GETSET key value:设置新值并返回旧值
GETSET counter 100 # 返回旧值,设置新值为100
- MGET key1 [key2..]:获取多个 key 的值
MGET name age email
3. 值操作
- STRLEN key:获取值的长度
STRLEN name # 返回 4 ("John"的长度)
- APPEND key value:追加值
APPEND name " Doe" # 值变为 "John Doe"
- GETRANGE key start end:获取子字符串
GETRANGE name 0 3 # 返回 "John"
二、数字操作
String 类型可以存储数字,Redis 提供了专门的数字操作命令:
1. 自增/自减
- INCR key:将 key 中存储的数字值增一
SET views 10 INCR views # views → 11
- INCRBY key increment:增加指定数值
INCRBY views 5 # views → 16
- DECR key:将 key 中存储的数字值减一
DECRBY key decrement:减少指定数值
2. 位操作
- SETBIT key offset value:设置或清除位的值
SETBIT mybit 7 1 # 设置第7位为1
- GETBIT key offset:获取位的值
BITCOUNT key [start end]:统计值为1的位数
三、批量操作
- MSET key value [key value ...]:同时设置多个键值对
MSET name "John" age 30 email "john@example.com"
- MSETNX key value [key value ...]:当所有key都不存在时设置多个键值对
四、高级操作
1. 过期时间相关
- SET key value EX seconds:SET + EXPIRE 的原子操作
SET session:123 "data" EX 3600 # 1小时后过期
五、使用场景
- 缓存:存储简单数据
SET user:1:name "John"
- 计数器:文章阅读量、用户点赞等
INCR article:1001:views
- 分布式锁:
SET lock:order:1234 true EX 30 NX
- 位图统计:用户签到、活跃用户统计
SETBIT user:sign:2023:05:01 1001 1