redis 知识点(java)

下面给你一份 Redis 知识点全景总结(面试 + 实战级) ,

覆盖 基础 → 数据类型 → 高级特性 → 缓存问题 → 分布式 → 架构设计 ,适合 Java 后端 / 中高级面试 / 真实项目。


一、Redis 是什么?

Redis = Remote Dictionary Server = 内存键值数据库

✅ 高性能(10万+ QPS)

✅ 单线程(命令执行)

✅ 多路 IO 复用

✅ 支持持久化


二、Redis 为什么快?(高频)

原因 说明
内存操作 无磁盘 IO
单线程 无锁
IO 多路复用 epoll
高效数据结构 hash、跳表

✅ 不是多线程更快,而是避免上下文切换


三、Redis 数据类型(必背)

1️⃣ 五大基础类型

类型 说明 场景
String 字符串 缓存、计数
Hash 键值对 对象
List 链表 队列
Set 无序集合 去重
ZSet 有序集合 排行榜

2️⃣ 三大高级类型

类型 说明
Bitmap 位图
HyperLogLog 基数统计
GeoSpatial 地理位置

四、String 详解(最常用)

bash 复制代码
SET key value
GET key
INCR key

✅ 最大 512MB

✅ 可用于:

  • 缓存
  • 分布式锁
  • 计数器

五、Hash(对象存储)

bash 复制代码
HSET user name tom age 18
HGET user name

✅ 比 String 更节省空间

✅ 适合存储对象


六、List(队列)

bash 复制代码
LPUSH queue a
RPOP queue

✅ 可做:

  • 消息队列
  • 排行榜

七、Set(去重)

bash 复制代码
SADD tag java
SISMEMBER tag java

✅ 抽奖

✅ 共同好友


八、ZSet(有序集合 ⭐⭐⭐⭐⭐)

bash 复制代码
ZADD score 100 tom
ZREVRANGE score 0 10

✅ 底层:跳表

✅ 排行榜、延迟队列


九、Redis 过期策略(重点)

1️⃣ 过期删除方式

方式 说明
惰性删除 访问时删除
定期删除 定时抽查

✅ 两种结合


2️⃣ 内存淘汰策略

策略 说明
noeviction 不淘汰(默认)
allkeys-lru 全体 LRU
volatile-lru 有过期时间 LRU
allkeys-random 随机

✅ 生产推荐:allkeys-lru


十、缓存三大问题(必问)

1️⃣ 缓存穿透

❌ 查询 不存在的数据

✅ 解决:

  • 缓存空值
  • 布隆过滤器

2️⃣ 缓存击穿

❌ 热点 key 过期

✅ 解决:

  • 互斥锁
  • 永不过期

3️⃣ 缓存雪崩

❌ 大量 key 同时过期

✅ 解决:

  • 过期时间随机
  • 多级缓存

十一、Redis 持久化(重点)

1️⃣ RDB(快照)

✅ 优点:快

❌ 缺点:可能丢数据


2️⃣ AOF(追加日志)

✅ 数据安全

❌ 文件大


3️⃣ 混合持久化(推荐)

✅ RDB + AOF


十二、Redis 高可用

方案 说明
主从复制 读写分离
哨兵 自动故障转移
Cluster 分布式

十三、Redis Cluster

✅ 16384 槽

✅ 数据分片

✅ 高可用


十四、Redis 分布式锁(高频)

java 复制代码
SET lock uuid NX PX 30000

✅ 必须:

  • 唯一 value
  • 过期时间
  • Lua 解锁

❌ 不要用 SETNX + DEL


十五、Redis 实现 MQ(补充)

方式 推荐
List 简单
Stream ✅ 推荐

十六、Redis 6 / 7 新特性

  • 多线程 IO
  • RESP3
  • 客户端缓存
  • ACL

十七、面试高频问题(必刷)

✅ Redis 为什么快?

✅ Redis 是单线程还是多线程?

✅ 缓存穿透 / 击穿 / 雪崩?

✅ Redis 持久化方式?

✅ Redis 内存淘汰策略?

✅ Redis 分布式锁实现?

✅ Redis 和 Memcached 区别?


十八、面试标准答案(背这段 ✅)

Redis 是基于内存的高性能键值数据库,采用单线程执行命令,通过 IO 多路复用提升性能。
支持多种数据结构,常用于缓存、分布式锁和排行榜。
通过 RDB 和 AOF 实现持久化,通过主从、哨兵和 Cluster 实现高可用。
在缓存场景中,需要重点解决缓存穿透、击穿和雪崩问题。


十九、一句话总结(记住这句)

✅ Redis = 内存 + 数据结构 + 高并发 + 分布式


相关推荐
AIgorithmGEEK4 小时前
MySQL 索引全解(下):建、查、删实战与知识速查表
数据库·mysql·b+树·索引
Lost_the_wind4 小时前
MySQL学习笔记四
mysql
唠点键盘之外的6 小时前
26 向量数据库实战:从 0 搭一条能用的检索链路(pgvector + Spring AI)
数据库·人工智能·spring
云和恩墨7 小时前
数据库监控简史:监控不止于告警——从图表大爆发到健康管理闭环
数据库
ly76897 小时前
MongoDB 事务开销实测:快照隔离下的写冲突、重试与分片事务边界
数据库·mongodb·事务·分片集群·快照隔离·写冲突
豆角焖肉7 小时前
Spring AOP 自定义注解实现系统操作日志
数据库·自定义注解·springaop·操作日志·aop 切面
金伟API10248 小时前
不会写复杂SQL怎么办?
数据库·sql
执笔为剑8 小时前
2.1.2-1、V8R3迁移到V8R6-Oracle兼容特性
数据库
geovindu9 小时前
sql:Search-Optimized SQL Queries using mysql 9.0
android·数据库·sql·mysql·数据库开发·数据库架构
for_ever_love__9 小时前
MySQL SELECT 与 WHERE 优化实战:可搜索条件、联合索引与执行计划
数据库·mysql·oracle·select·where·条件优化·查询优化技巧