framework
framework/redis/index.md
medium
framework-redis-index
Redis(Java/Spring 视角)使用约定 — 序列化/key 设计/缓存三大问题/分布式锁/缓存注解五个独立决策点。Use when 配 RedisTemplate / 设计 key / 处理缓存穿透击穿雪崩 / 加分布式锁 / 用缓存注解时。
子项索引
| 子项 | 一句话 |
|---|---|
| redis-redistemplate-usage skill | RedisTemplate 序列化配置 — 默认 Jdk 序列化不可读且体积大,须显式配 String + Jackson JSON 序列化器 |
| redis-key-design skill | Redis Key 命名与 value 选型 — 业务:模块:id 冒号分层、必设 TTL 防内存泄漏、避免大 key/热 key,按场景选 String/Hash/Set/ZSet |
| redis-cache-patterns skill | Redis 缓存三大问题 — 穿透(布隆/缓存空值)、击穿(互斥锁/逻辑过期)、雪崩(TTL 加随机/多级缓存),及缓存与 DB 一致性(先更 DB 再删缓存) |
| redis-distributed-lock skill | Redis 分布式锁 — 推荐 Redisson(看门狗自动续期),手写 SETNX 须带过期+唯一值+Lua 释放,禁用 setIfAbsent 不带过期 |
| redis-cache-annotation skill | Spring Cache 注解 — @Cacheable/@CacheEvict/@CachePut、key 写 SpEL、condition/unless 控缓存、CacheManager 配 TTL |
Redis · 框架使用约定索引
五个独立决策点,按你正在做的事下钻:
| 你在做什么 | 进哪个 |
|---|---|
| 配 RedisTemplate、选序列化器、排查乱码 key | redistemplate-usage |
| 起 key 名、设 TTL、选 String/Hash/Set/ZSet | key-design |
| 防缓存穿透/击穿/雪崩、处理缓存与 DB 一致性 | cache-patterns |
| 跨进程加分布式锁(Redisson / 手写 SETNX) | distributed-lock |
| 用 @Cacheable / @CacheEvict 做声明式缓存 | cache-annotation |