Redis 入门
理解 Redis 的定位与核心特性
掌握适用场景与业务价值
区分 Redis 与传统缓存、关系型数据库的差异
核心讲解
Redis(Remote Dictionary Server,远程字典服务)是一款开源的内存型键值数据库,以性能极高、数据结构丰富、扩展能力强著称,是目前缓存领域的事实标准,同时广泛应用于计数器、分布式锁、排行榜、消息队列等场景。
(1)核心优势
性能极高:纯内存操作,单节点 QPS 可达 10 万 +,读性能 10 万 +,写性能 8 万 +,是传统数据库的几十倍
数据结构丰富:不止简单的字符串,支持 List、Hash、Set、ZSet、Bitmap、HyperLogLog、地理信息等多种数据结构,适配各种业务场景
持久化支持:支持 RDB 快照、AOF 日志两种持久化方式,宕机数据不丢失
高可用与集群:支持主从、哨兵、Cluster 集群,满足生产级高可用、横向扩容需求
原子操作:单命令原子性,支持 Lua 脚本,实现复杂原子逻辑
多语言客户端:支持 Java、Python、Go、C# 等几乎所有开发语言,生态完善
(2)核心应用场景
表格
场景 | 说明 |
|---|---|
业务数据缓存 | 热点数据放 Redis,降低数据库压力,提升接口响应速度 |
分布式会话 | 用户登录态、Token 集中存储,多服务共享 |
计数器 | 点赞、浏览量、库存计数,原子操作不超卖 |
排行榜 | 有序集合实现实时排行榜,游戏、内容榜单 |
分布式锁 | 多服务 / 多实例抢占资源,原子锁 |
消息队列 | 发布订阅、Stream 实现轻量消息队列 |
地理位置 | Geo 命令实现附近的人、距离计算 |
限流 | 计数器 + 过期时间,实现接口限流 |
(3)Redis vs Memcached
表格
维度 | Redis | Memcached |
|---|---|---|
数据结构 | 极丰富,9 种 + 数据类型 | 只有简单字符串 |
持久化 | 支持 RDB+AOF | 不支持,宕机数据全丢 |
集群 | 支持主从、哨兵、Cluster | 原生不支持集群 |
内存管理 | 支持淘汰策略,持久化 | 纯缓存,LRU 淘汰 |
适用场景 | 复杂业务、缓存 + 计算 | 简单纯缓存场景 |
常见误区
Redis 只能做缓存:Redis 是多功能内存数据库,缓存只是最常用的场景之一
内存数据库就不可靠:有完善的持久化机制,生产环境开启持久化,数据可靠性很高
速度都一样快:合理设计能到 10 万 QPS,滥用数据结构、大键、慢命令会把性能拉到很低
课后练习
查阅资料,简述 Redis 的发展历史与版本演进
列举 3 个你项目中可以用 Redis 优化的场景
对比 Redis 和关系型数据库的核心区别

