1. Redis核心指令与数据结构解析
Redis作为当今最流行的内存数据库之一,其简洁而强大的指令系统是开发者必须掌握的核心技能。让我们从最基础的键值操作开始,逐步深入理解Redis的设计哲学。
1.1 键值操作基础:SET与GET
Redis的所有数据都以键值对形式存储,其中SET和GET是最基础的两个命令:
bash复制SET user:1001 "张三"
GET user:1001
这里有几个值得注意的细节:
- 键名通常采用
对象类型:ID的命名约定,提高可读性 - 值可以是任意二进制数据,最大支持512MB
- 命令不区分大小写,但通常使用大写形式保持统一
实际开发中,建议为键名设计合理的命名空间,如
order:20230815:1001,避免键名冲突
1.2 全局命令详解
1.2.1 KEYS命令与生产环境禁忌
KEYS命令支持通配符查询,但必须警惕其危险性:
bash复制KEYS user:* # 查询所有用户键
KEYS * # 查询所有键(生产环境禁用!)
我曾在一个线上服务中目睹过开发人员误用KEYS *导致服务雪崩的案例。当时Redis实例中有2000万键,这个命令阻塞了服务长达8秒,直接导致上游服务超时崩溃。
1.2.2 键生命周期管理
Redis提供了完善的键生命周期管理命令:
bash复制EXPIRE session:abc 3600 # 设置1小时过期
TTL session:abc # 查看剩余时间
PERSIST session:abc # 取消过期时间
在电商系统中,我们常用这种机制实现购物车自动清理功能。需要注意的是,过期时间精度约为1秒,不适合需要毫秒级精度的场景。
1.3 数据结构全景图
Redis支持丰富的数据结构,每种结构都有其适用场景:
| 数据结构 | 特征 | 典型应用 |
|---|---|---|
| String | 二进制安全 | 缓存、计数器 |
| Hash | 字段值映射 | 对象存储 |
| List | 有序可重复 | 消息队列 |
| Set | 无序唯一 | 标签系统 |
| ZSet |
