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


相关推荐
Rain的Java大神之路5 小时前
如何快速上传10G文件
java·spring boot·redis·后端·mysql·spring cloud·面试
十二同学啊5 小时前
向量数据库:从核心原理到 RAG 与 Java 实战
数据库
蓝速科技6 小时前
会议室门牌公告通知发布选型与落地指南丨蓝速科技
大数据·运维·数据库·人工智能·科技
大海星辰7987 小时前
一次对账SQL“灵异事件”排查:NOT IN返回空集的坑
mysql
Linux-lucky7 小时前
32-38-Linux学习之旅之MySQL综合
linux·运维·学习·mysql·ubuntu
一 乐9 小时前
二手交易平台|基于springboot + vue二手交易平台(源码+数据库+文档)
java·数据库·vue.js·spring boot·小程序
SelectDB9 小时前
同等资源下 Apache Doris 4.2 vs StarRocks 4.1.1:1TB SSB 与 TPC-H 性能实测
大数据·数据库·数据分析
这个DBA有点耶9 小时前
数据库集群与分布式架构:三条技术路线对比、金仓KES RAC实测数据与决策框架
数据库·程序员·架构
MayBaymax10 小时前
MongoDB 索引与事务
java·数据库·mongodb
SelectDB10 小时前
Doris vs ClickHouse:企业 OLAP 走向下一阶段,两种技术路线如何选择
大数据·数据库·数据分析