Redis 技术教程:从入门到实战
# Redis 技术教程:从入门到实战
## 一、Redis 简介
Redis 是一个开源的内存数据库,以 Key-Value 形式存储数据。它的特点包括:
– **内存存储**:数据在内存中,读写速度极快
– **高性能**:单线程模型,无上下文切换开销
– **多数据类型**:支持字符串、列表、集合等 5+ 种数据结构
– **持久化**:支持 RDB 和 AOF 两种持久化方式
## 二、核心数据类型
### 1. String(字符串)
“`bash
SET name “Tom”
GET name
SET token “abc123” EX 3600
“`
### 2. Hash(哈希)
“`bash
HSET user:1001 name “Tom”
HSET user:1001 age 25
HGETALL user:1001
“`
### 3. List(列表)
“`bash
LPUSH queue “item1”
RPUSH queue “item2”
LRANGE queue 0 -1
LPOP queue
“`
### 4. Set(集合)
“`bash
SADD tags “java” “redis”
SCARD tags
SISMEMBER tags “java”
“`
### 5. ZSet(有序集合)
“`bash
ZADD rank 100 “Alice”
ZADD rank 95 “Bob”
ZRANK rank “Bob”
“`
## 三、基本原理
### 单线程模型
Redis 采用单线程处理命令,避免了多线程的锁竞争和上下文切换开销。所有操作都在一个线程中顺序执行,保证原子性。
### 持久化机制
– **RDB**:快照模式,定时保存数据快照
– **AOF**:追加日志,记录每次写操作
### 内存管理
Redis 使用内存池管理,支持多种淘汰策略:
– `noeviction`:不淘汰
– `allkeys-lru`:随机淘汰最近最少使用
– `volatile-lru`:仅淘汰设置了过期时间的键
## 四、常用命令
“`bash
SET key value
GET key
DEL key
EXPIRE key 3600
MSET k1 v1 k2 v2
“`
## 五、使用场景
| 场景 | 类型 | 说明 |
|——|——|——|
| 缓存 | String | 存储热点数据 |
| 会话管理 | String | Session 存储 |
| 消息队列 | List | 消息排队 |
| 排行榜 | ZSet | 分数排序 |
| 计数器 | String | 原子递增 |
## 六、最佳实践
### 1. 键命名规范
“`bash
# 推荐
user:1001:info
order:20240422:001
# 不推荐
user_info
myorder
“`
### 2. 大 Key 处理
“`bash
redis-cli –bigkeys
HSCAN key 0 COUNT 100
“`
### 3. 内存监控
“`bash
INFO memory
INFO stats
“`
## 总结
Redis 是高性能缓存的首选。掌握数据类型、原理和最佳实践,才能让你的应用发挥 Redis 的最大价值。
—
**#Redis #缓存 #数据库 #NoSQL #技术教程**



