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 #技术教程**

![Redis 架构图和数据类型可视化](https://blog.duoku.icu/wp-content/uploads/2026/04/redis_tutorial_v1.png)

标签