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

4.3 KiB
Raw Permalink Blame History

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 数据安全

  • 配置密码保护
  • 启用持久化机制
  • 定期备份数据