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 分钟前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
宇宙无敌暴龙战士66634 分钟前
MySQL 8 库表操作学习笔记:SQL 基础、库表管理、约束与用户授权全流程
数据库·sql·mysql·学习笔记·后端开发
猿究院_夏燊43 分钟前
MySQL 的四种隔离级别
java·数据库·mysql
say_fall1 小时前
【Linux系统编程】Ext 文件系统:磁盘与存储、文件与目录、现代计算机究竟如何寻找文件
linux·运维·服务器·数据库·c++
共享家95272 小时前
408 操作系统第一章
服务器·数据库·windows
这个DBA有点耶2 小时前
连拿六年第一后宣布出海:国产数据库凭什么敢撕掉“平替”的标签?
数据库·人工智能·架构
云和恩墨3 小时前
数据库监控简史:从会回答到能交付——AI-DBA如何成为真正的数字同事
数据库·人工智能·dba
paopaokaka_luck3 小时前
灾害应急物资管理系统(AI应急助手、Echarts可视化数据看板、捐赠入库联动、 物资全流程管理、库存变动追溯、灾情资讯与互动反馈、物资发放公示)
java·前端·javascript·spring boot·mysql·tomcat·echarts
这个DBA有点耶4 小时前
为什么删掉索引后,查询瞬间变快了?探讨MySQL的随机I/O与顺序I/O博弈
数据库·mysql·代码规范
kingx34 小时前
BugKu 渗透测试 4 实战:文件上传打点,5 Flag 全通
数据库·渗透测试·web·内网渗透