# Redis 基础概念 ## NoSQL 数据库概述 - NoSQL 数据库的特点和分类 - 关系型数据库 vs NoSQL 数据库 - NoSQL 数据库的应用场景 ## Redis 简介 - Redis 的定义和特点 - Redis 的数据结构 - Redis 的应用场景 - Redis 的优势和局限性 ## Redis 架构 - Redis 的内存模型 - Redis 的单线程模型 - Redis 的事件驱动机制 ## 实践操作 - 了解 NoSQL 数据库的分类和特点 - 分析 Redis 在不同场景下的应用优势 --- # Redis 环境搭建 ## Redis 安装 - Linux 环境下的安装 ## Redis 配置 - 配置文件详解 - 常用配置参数 - 安全配置 - 性能调优配置 ## Redis 启动和连接 - Redis 服务启动 - Redis 客户端连接 - 远程连接配置 - 连接池配置 ## 实践操作 - 在本地环境安装 Redis - 配置 Redis 服务 - 使用客户端连接 Redis --- # Redis 数据类型 ## 字符串 (String) - 字符串的特点和应用 - 基本操作命令 - 数值操作 - 位操作 ## 列表 (List) - 列表的特点和应用 - 基本操作命令 - 阻塞操作 - 列表的应用场景 ## 集合 (Set) - 集合的特点和应用 - 基本操作命令 - 集合运算 - 随机操作 ## 有序集合 (Sorted Set) - 有序集合的特点和应用 - 基本操作命令 - 范围操作 - 排行榜应用 ## 哈希 (Hash) - 哈希的特点和应用 - 基本操作命令 - 批量操作 - 对象存储应用 ## 实践操作 - 使用不同数据类型存储数据 - 实现简单的缓存功能 - 构建用户信息存储系统 --- # Redis 基本命令 ## 键操作命令 - 键的命名规范 - 键的查询和遍历 - 键的过期设置 - 键的删除和重命名 ## 数据库操作 - 多数据库概念 - 数据库切换 - 数据库清空 - 数据库信息查看 ## 事务操作 - 事务的概念 - MULTI/EXEC 命令 - WATCH 命令 - 事务的特性和限制 ## 脚本操作 - Lua 脚本简介 - EVAL 和 EVALSHA 命令 - 脚本缓存 - 脚本的应用场景 ## 实践操作 - 管理 Redis 键空间 - 使用事务保证操作原子性 - 编写简单的 Lua 脚本 --- # Redis 持久化 ## RDB 持久化 - RDB 的工作原理 - RDB 配置参数 - 手动触发 RDB - RDB 文件的恢复 ## AOF 持久化 - AOF 的工作原理 - AOF 配置参数 - AOF 重写机制 - AOF 文件的恢复 ## 混合持久化 - 混合持久化的优势 - 配置混合持久化 - 数据恢复策略 ## 持久化策略选择 - RDB vs AOF 对比 - 不同场景下的选择 - 性能影响分析 ## 实践操作 - 配置 RDB 持久化 - 配置 AOF 持久化 - 测试数据恢复功能 --- # Redis 主从复制 ## 主从复制概述 - 主从复制的概念 - 主从复制的优势 - 复制的工作原理 ## 主从复制配置 - 主服务器配置 - 从服务器配置 - 复制参数调优 ## 复制的特性 - 异步复制 - 部分重同步 - 无磁盘复制 - 复制偏移量 ## 主从切换 - 手动主从切换 - 故障处理 - 数据一致性 ## 实践操作 - 搭建主从复制环境 - 测试数据同步 - 模拟故障切换 --- # Redis 哨兵模式 ## 哨兵模式概述 - 哨兵的作用 - 哨兵的工作原理 - 哨兵集群的优势 ## 哨兵配置 - 哨兵配置文件 - 监控配置 - 故障转移配置 - 通知配置 ## 故障检测和转移 - 主观下线和客观下线 - 故障转移流程 - 新主服务器选举 - 配置传播 ## 哨兵集群管理 - 哨兵节点管理 - 配置更新 - 监控和日志 ## 实践操作 - 部署哨兵集群 - 配置故障转移 - 测试高可用性 --- # Redis 集群 ## 集群概述 - 集群的概念和优势 - 集群 vs 主从复制 - 集群的适用场景 ## 集群架构 - 槽位分配机制 - 节点通信协议 - 集群拓扑结构 ## 集群搭建 - 集群节点配置 - 集群初始化 - 节点加入和移除 - 槽位迁移 ## 集群管理 - 集群状态监控 - 故障检测和恢复 - 集群扩容和缩容 - 数据迁移 ## 实践操作 - 搭建 Redis 集群 - 测试数据分片 - 进行集群扩容 --- # Redis 性能优化 ## 性能监控 - 性能指标分析 - 监控工具使用 - 慢查询日志 - 内存使用分析 ## 内存优化 - 内存使用策略 - 数据结构优化 - 过期策略配置 - 内存碎片处理 ## 网络优化 - 连接池配置 - 管道技术 - 批量操作 - 网络延迟优化 ## 配置优化 - 核心参数调优 - 持久化优化 - 复制优化 - 系统级优化 ## 实践操作 - 监控 Redis 性能 - 优化内存使用 - 测试性能提升效果 --- # Redis 安全管理 ## 访问控制 - 密码认证 - 用户管理 (ACL) - 权限控制 - IP 白名单 ## 网络安全 - 端口安全 - SSL/TLS 加密 - 防火墙配置 - VPN 访问 ## 数据安全 - 数据加密 - 敏感数据处理 - 备份安全 - 审计日志 ## 安全最佳实践 - 安全配置检查 - 漏洞防护 - 安全更新 - 应急响应 ## 实践操作 - 配置访问控制 - 启用 SSL 加密 - 实施安全策略 --- # Redis 应用实战 ## 缓存应用 - 缓存策略 - 缓存穿透、击穿、雪崩 - 缓存更新策略 - 分布式缓存 ## 会话管理 - 会话存储 - 分布式会话 - 会话过期处理 - 安全考虑 ## 消息队列 - 发布订阅模式 - 消息队列实现 - 延时队列 - 可靠性保证 ## 排行榜系统 - 实时排行榜 - 历史排行榜 - 分页查询 - 性能优化 ## 分布式锁 - 锁的实现原理 - 锁的获取和释放 - 锁的超时处理 - 可重入锁 ## 实践操作 - 构建缓存系统 - 实现会话管理 - 开发消息队列 - 创建排行榜功能 - 实现分布式锁 --- # Redis 运维管理 ## 备份和恢复 - 备份策略 - 自动备份 - 数据恢复 - 灾难恢复 ## 监控和告警 - 监控指标 - 告警规则 - 监控工具 - 性能分析 ## 日志管理 - 日志配置 - 日志分析 - 问题排查 - 日志轮转 ## 版本升级 - 升级策略 - 兼容性检查 - 滚动升级 - 回滚方案 ## 实践操作 - 制定备份策略 - 配置监控系统 - 进行版本升级 --- # Redis 生态工具 ## 客户端工具 - Redis CLI - 图形化管理工具 - 编程语言客户端 - 连接池工具 ## 集群管理工具 - Redis Cluster Manager - 第三方集群工具 - 自动化部署工具 ## 监控工具 - Redis Monitor - Prometheus + Grafana - 第三方监控方案 ## 实践操作 - 使用管理工具 - 集成开发框架 - 配置监控方案