Redis是大型架构核心,下面我详解Redis常用命令@mikechen
1. SET:设置键值
SET 是 Redis 最基础、最常用的命令,用于设置一个 key 对应的 value。
SET username mikechen
查询:
GET username
结果:
"mikechen"
最典型的场景就是:
- 缓存
- Session
- Token
- 分布式锁
- 验证码
例如分布式锁:
SET lock:order:1001 abc123 NX EX 30
其中:
NX:key 不存在时才设置EX 30:30 秒自动过期
2. GET:获取字符串
GET 用于获取指定 key 的 value。
GET username
如果 key 不存在:
(nil)
常见场景
SET user:1001 "mikechen"
GET user:1001
适合用于:
- 查询缓存
- 获取 Token
- 获取 Session
- 查询简单配置
3. DEL:删除 Key
DEL 用于删除一个或多个 key。
DEL username
也可以一次删除多个:
DEL user:1001 user:1002 user:1003
返回删除成功的 key 数量:
(integer) 3
注意
生产环境中不要随意使用:
KEYS *
4. EXISTS:判断 Key 是否存在
EXISTS username
返回:
(integer) 1
表示存在。
不存在则:
(integer) 0
还可以一次判断多个:
EXISTS user:1001 user:1002 user:1003
5. EXPIRE:设置过期时间
EXPIRE 用于给已经存在的 key 设置过期时间。
SET login:1001 true
EXPIRE login:1001 3600
表示 login:1001 在 3600 秒后自动删除。
查看剩余时间:
TTL login:1001
例如:
(integer) 3598
表示还剩约 3598 秒。
特别适合:
验证码
登录Session
缓存数据
Token
临时数据
例如验证码:
SET sms:13800138000 123456 EX 300
5 分钟后自动失效。
6. HSET:设置 Hash
Redis Hash 可以理解成一个轻量级的对象结构。
例如用户:
HSET user:1001 name mikechen
HSET user:1001 age 35
HSET user:1001 job architect
得到:
user:1001
├── name = mikechen
├── age = 35
└── job = architect
也可以一次设置多个字段:
HSET user:1001 name mikechen age 35 job architect
Hash 非常适合保存:
用户信息
商品信息
订单信息
对象属性
7. INCR:数值自增
INCR 用于对整数值进行 +1 操作。
SET counter 100
INCR counter
结果:
(integer) 101
再次执行:
INCR counter
结果:
(integer) 102
为什么非常重要?
Redis 的 INCR 是原子操作,因此非常适合高并发计数。
8. LPUSH / RPOP:List队列
Redis List 可以实现简单队列。
生产者:
LPUSH queue order1001
消费者:
RPOP queue
例如:
LPUSH queue order1001
LPUSH queue order1002
LPUSH queue order1003
然后:
RPOP queue
依次获取:
order1001
order1002
order1003
因此可以实现一个简单的:FIFO 队列。
不过在对可靠性、消费确认、消息堆积等要求较高的场景中,通常应该考虑 Redis Streams、Kafka、RocketMQ 等专业消息系统。
9. SADD:Set集合
SADD 用于向 Set 中添加元素。
SADD users mike
SADD users tom
SADD users jack
Set 的特点是:
元素唯一、无序。
Set 非常适合:
- 标签
- 共同好友
- UV统计
- 去重
- 黑名单
- 权限集合
例如统计独立用户:
SADD uv:20260813 user1001
SADD uv:20260813 user1002
SADD uv:20260813 user1001
同一个用户重复访问不会重复计算。
10. ZADD:Sorted Set有序集合
ZADD 是 Redis 中非常重要的命令,用于向 Sorted Set 添加带 Score(分数) 的元素。
ZADD ranking 100 mike
ZADD ranking 95 tom
ZADD ranking 90 jack
查询:
ZRANGE ranking 0 -1 WITHSCORES
Sorted Set 非常适合:
- 游戏排行榜
- 热度排行榜
- 积分排名
- 延迟队列
- 时间排序
- 权重排序
例如:
ZADD hot:articles 100 article:1001
ZADD hot:articles 95 article:1002
ZADD hot:articles 90 article:1003
然后:
ZREVRANGE hot:articles 0 9
直接获取热门文章 Top 10。