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 = 内存 + 数据结构 + 高并发 + 分布式


相关推荐
折哥的程序人生 · 物流技术专研1 天前
Java面试85题图解版 · 特别篇:2026后端高频面试题复盘(算法底层逻辑+高并发架构设计全解析,附Java实战代码)
java·网络·数据库·算法·面试
AOwhisky1 天前
Redis 学习笔记(第三期):持久化与主从复制
运维·数据库·redis·笔记·学习·云计算
李白的天不白1 天前
数据库连接报错问题
数据库
一条泥憨鱼1 天前
【Redis】数据类型和常用命令
java·数据库·redis·后端·缓存
爱喝水的鱼丶1 天前
SAP-ABAP:SAP视图开发入门:四类标准视图的适用场景与创建步骤详解
服务器·数据库·性能优化·sap·abap
大白要努力!1 天前
MySQL 8.0 + Navicat 完整操作指南
数据库·mysql
云絮.1 天前
数据库操作
数据库·mysql·算法·oracle
小小工匠1 天前
Redis 缓存替换策略:8 种淘汰策略与 LRU 实现剖析
数据库·redis·缓存
设计师小聂!1 天前
宝塔 Linux 面板保姆级教程
linux·mysql·开源·运维开发