1. Redis基础认知与核心特性解析
Redis(Remote Dictionary Server)作为当下最流行的内存数据库之一,其设计哲学可以用"简单即美"来概括。2009年由Salvatore Sanfilippo开发,最初是为了解决其创业公司LLOOGG的实时日志分析性能问题。经过十余年发展,现已成为互联网架构中的基础设施级组件。
1.1 内存优先的存储引擎
Redis最显著的特点是全内存运行的设计。所有数据优先存储在内存中,这使得其读写性能达到惊人的级别——单机QPS可达10万级别。但不要误以为Redis只是简单的内存缓存,它通过以下机制实现了数据的持久化:
- RDB(Redis Database):定时内存快照,二进制压缩存储
- AOF(Append Only File):记录所有写操作命令的日志文件
- 混合持久化(4.0+):结合RDB和AOF优势,先全量快照再增量日志
生产环境建议至少开启RDB+AOF混合模式,在redis.conf中配置:
code复制save 900 1 # 900秒内至少1个key变化则触发RDB appendonly yes # 开启AOF aof-use-rdb-preamble yes # 开启混合模式
1.2 丰富的数据结构支持
与传统键值存储不同,Redis提供5种核心数据结构,每种结构都有对应的原子操作命令:
| 数据结构 | 特征 | 典型场景 |
|---|---|---|
| String | 二进制安全,最大512MB | 缓存、计数器 |
| Hash | 字段值映射表 | 对象属性存储 |
| List | 双向链表,元素可重复 | 消息队列、最新列表 |
| Set | 无序唯一集合 | 标签系统、共同好友 |
| ZSet | 带分数的有序集合 | 排行榜、延迟队列 |
以电商场景为例,一个商品详情可能这样存储:
bash复制# 字符串存储基础信息
SET product:1001 '{"name":"iPhone13","price":5999}'
# 哈希存储规格参数
HSET product:1001:spec color "星光色" memory "128G
