411 lines
6.2 KiB
Markdown
411 lines
6.2 KiB
Markdown
# 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
|
|
- 第三方监控方案
|
|
|
|
## 实践操作
|
|
- 使用管理工具
|
|
- 集成开发框架
|
|
- 配置监控方案
|