java 面试题 redis 处理大key问题

java reids 如何处理比较大的key

首先用命令看一下key值占用的资源:

MEMORY USAGE key

🔹 扫描大 Key(生产慎用)

redis-cli --bigkeys

2️⃣ Scan + 统计(安全)

SCAN 0 COUNT 1000

四、如何处理大 Key(重点 ⭐⭐⭐)

1️⃣ 拆分 Key(最推荐)

❌ 大 Key

user:1000 → 一个 Hash 存 20w 字段

✅ 拆分

user:1000:base

user:1000:ext

user:1000:order:1

user:1000:order:2

2️⃣ 拆分集合(分页 / 分片)

List / ZSet

order:list:1

order:list:2

3️⃣ 压缩 / 精简数据

JSON → 字段化

去掉冗余字段

压缩(Snappy / GZIP,权衡 CPU)

4️⃣ 删除大 Key 的正确姿势(必考 ⚠️)

❌ 错误

DEL bigkey

✅ 正确

UNLINK bigkey

UNLINK:异步删除,不阻塞主线程(Redis 4.0+)

5️⃣ 分批删除集合

HSCAN key 0 COUNT 1000

HDEL key field1 field2 ...

6️⃣ 设置合理过期时间

EXPIRE key 3600

避免永久大 Key。

7️⃣ 热点大 Key(高并发)

解决思路:

本地缓存

多副本 key

Lua 合并请求

限流

相关推荐
她说可以呀几秒前
Spring-ai-alibaba文生图
java·人工智能·spring
啊啊啊啊啊!!!!1 小时前
【c++】stack和queue的接口使用以及底层实现
开发语言·c++
松仔log2 小时前
Java中级——组合和继承
android·java·开发语言
不才不才不不才2 小时前
Spring 源码系列(16): doDispatch 全流程——一次请求的主干链路
java·后端·spring
snow@li2 小时前
HikariCP:高性能数据库连接池全景深入梳理
java·数据库
edwarddamon3 小时前
Spring Cloud 配置热更新与 Bean 代理机制梳理
java·后端
Raas1004 小时前
MAIGateway,魔芋企业级AI网关的FinAPI成本竞争力设计
java·后端·网关·api网关·魔芋ai·finapi·mai gateway
(Charon)4 小时前
【C++】锁与原子操作(四):自旋锁的完整实现与性能优化
c语言·开发语言·c++
雨田言炎4 小时前
五、Qt控件使用说明大全
开发语言·qt
evans在进步4 小时前
Spring AI 从入门到实战:用 Java 实现大模型对话与 Tool Calling
java·人工智能·spring