Files
2025-10-20 18:46:59 +08:00

145 lines
4.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Redis 学习指南
## 1. Redis基础概念
### 什么是Redis?
Redis是一个开源的内存数据结构存储系统,可以用作数据库、缓存和消息中间件。它支持多种数据结构,包括字符串、哈希、列表、集合、有序集合等。
### Redis的主要特点
- **高性能**:基于内存存储,读写速度极快
- **丰富的数据结构**:支持多种数据类型和操作
- **持久化**:支持RDB和AOF两种持久化方式
- **原子性**:单个操作是原子性的
- **多种模式**:支持主从复制、集群等模式
## 2. 数据类型详解
### 2.1 字符串(String)
字符串是Redis最基础的数据类型,可以存储字符串、数字或二进制数据。
#### 常用命令:
- `SET key value` - 设置键值对
- `GET key` - 获取键的值
- `INCR key` - 对键的值进行自增
- `DECR key` - 对键的值进行自减
### 2.2 列表(List)
列表是简单的字符串列表,按照插入顺序排序。可以向列表两端添加元素。
#### 常用命令:
- `LPUSH key value` - 在列表左侧插入元素
- `RPUSH key value` - 在列表右侧插入元素
- `LPOP key` - 从列表左侧弹出元素
- `RPOP key` - 从列表右侧弹出元素
- `LRANGE key start end` - 获取列表指定范围的元素
### 2.3 集合(Set)
集合是字符串类型的无序集合,集合中的元素是唯一的。
#### 常用命令:
- `SADD key member` - 向集合添加元素
- `SREM key member` - 从集合中删除元素
- `SMEMBERS key` - 获取集合中的所有元素
- `SISMEMBER key member` - 判断元素是否在集合中
- `SINTER key1 key2` - 获取两个集合的交集
- `SUNION key1 key2` - 获取两个集合的并集
### 2.4 哈希(Hash)
哈希是键值对集合,适合存储对象。
#### 常用命令:
- `HSET key field value` - 设置哈希字段的值
- `HGET key field` - 获取哈希字段的值
- `HGETALL key` - 获取哈希中的所有字段和值
- `HDEL key field` - 删除哈希字段
### 2.5 有序集合(Sorted Set)
有序集合与集合类似,但每个元素都关联一个分数,用于排序。
#### 常用命令:
- `ZADD key score member` - 向有序集合添加元素
- `ZSCORE key member` - 获取有序集合中元素的分数
- `ZRANGE key start end` - 获取有序集合指定范围的元素
- `ZREVRANGE key start end` - 获取有序集合指定范围的元素(逆序)
- `ZREM key member` - 删除有序集合中的元素
## 3. 高级特性
### 3.1 过期时间
可以为键设置过期时间,Redis会自动删除过期的键。
#### 常用命令:
- `EXPIRE key seconds` - 设置键的过期时间
- `TTL key` - 获取键的剩余生存时间
- `PERSIST key` - 移除键的过期时间
### 3.2 事务
Redis事务允许将多个命令作为一个原子操作执行。
#### 常用命令:
- `MULTI` - 开始事务
- `EXEC` - 执行事务
- `DISCARD` - 取消事务
### 3.3 发布/订阅
Redis支持发布/订阅模式,用于消息传递。
#### 常用命令:
- `SUBSCRIBE channel` - 订阅频道
- `PUBLISH channel message` - 发布消息到频道
### 3.4 持久化
Redis支持两种持久化方式:
- RDB:在指定时间间隔内创建数据快照
- AOF:记录每个写操作命令
## 4. 实际应用场景
### 4.1 缓存
使用Redis作为缓存层,提高应用性能。
### 4.2 会话存储
存储用户会话信息,实现分布式会话管理。
### 4.3 计数器
使用Redis的原子操作实现计数器功能。
### 4.4 消息队列
利用列表实现简单的消息队列。
### 4.5 排行榜
使用有序集合实现排行榜功能。
## 5. 学习建议
### 5.1 从基础开始
- 先掌握各种数据类型的使用
- 理解Redis的内存模型和性能特点
- 学会使用Redis命令行工具
### 5.2 实践为主
- 每学一个概念就动手实践
- 编写测试用例验证功能
- 尝试在实际项目中应用
### 5.3 深入理解
- 学习Redis的内部实现机制
- 理解不同数据结构的适用场景
- 掌握性能优化技巧
## 6. 常见问题
### 6.1 内存管理
- Redis是内存数据库,要注意内存使用情况
- 合理设置过期时间避免内存泄漏
- 使用Redis内存优化技巧
### 6.2 性能优化
- 合理使用连接池
- 避免大键和大值
- 使用Pipeline批量操作
### 6.3 数据安全
- 配置密码保护
- 启用持久化机制
- 定期备份数据