Hidewnd Docs Hidewnd Docs
首页
  • 常用开发环境
  • 常用提示词
  • 常用Linux命令
  • 常用Git规范及命令
  • Java开发聊天机器人
  • word模板生成实现方案
  • 基于Go写一个极简的通讯demo
  • SpringBoot配置文件加密处理
  • SpringBoot优雅的抛出业务异常
  • 通用大模型适配器
  • 10分钟快速搭建个人博客
  • [学习笔记]Lua
  • [学习笔记]JVM
  • [学习笔记]设计模式
  • [部署笔记]搭建Typecho博客
  • [部署笔记]部署Qsign签名机
  • [部署笔记]安装PVE系统
  • [部署笔记]部署KingBaseV9电科金仓
  • 技艺成本
  • Rules
  • Setting
  • Skill
  • 剑三网站合集
  • 合并大区角色数据处理
  • 25PT冷龙峰教学笔记
  • 25PT太极宫教学笔记
  • 25PT弓月城教学笔记
关于
GitHub (opens new window)
首页
  • 常用开发环境
  • 常用提示词
  • 常用Linux命令
  • 常用Git规范及命令
  • Java开发聊天机器人
  • word模板生成实现方案
  • 基于Go写一个极简的通讯demo
  • SpringBoot配置文件加密处理
  • SpringBoot优雅的抛出业务异常
  • 通用大模型适配器
  • 10分钟快速搭建个人博客
  • [学习笔记]Lua
  • [学习笔记]JVM
  • [学习笔记]设计模式
  • [部署笔记]搭建Typecho博客
  • [部署笔记]部署Qsign签名机
  • [部署笔记]安装PVE系统
  • [部署笔记]部署KingBaseV9电科金仓
  • 技艺成本
  • Rules
  • Setting
  • Skill
  • 剑三网站合集
  • 合并大区角色数据处理
  • 25PT冷龙峰教学笔记
  • 25PT太极宫教学笔记
  • 25PT弓月城教学笔记
关于
GitHub (opens new window)
  • Cursor
  • Rules

    • caching-and-distributed-lock
      • 缓存使用场景
      • 缓存键设计
      • 缓存配置
      • 分布式锁使用
      • 常见问题防护
    • database-entity-annotations
    • design-patterns
    • idempotency-specification
    • java-21-language-specification
    • java-clean-code-effective-java-spec
    • java-entity-vo-specification
    • java-language-specification
    • logging-specification
    • openapi-and-api-doc-spec
    • persistence-repository-specification
    • rest-api-specification
    • springboot-architecture-layering
    • springboot-config-and-profiles
    • springboot-exception-and-error-code
    • springboot-testing-specification
    • validation-specification
  • Setting

  • Skill

  • Cursor
  • Rules
hidewnd
目录

缓存与分布式锁规范

# 缓存与分布式锁规范

# 缓存使用场景

  • 读多写少且允许一定时间数据延迟的场景使用缓存
  • 热点数据与配置数据优先进入缓存
  • 对幂等接口的防重可结合短期缓存实现

# 缓存键设计

  • 使用统一前缀表达业务域,例如 user:detail:{userId}
  • 避免使用可变或高碰撞风险的键
  • 对 key 中的业务字段进行显式拼接,保证可读性

# 缓存配置

  • 为不同类型数据设置合理的过期时间
  • 对高频访问且更新不频繁的数据使用较长过期时间
  • 对列表或聚合类缓存考虑同步更新策略

# 分布式锁使用

  • 使用可靠的分布式锁实现库,例如 Redisson
  • 锁 key 设计包含业务标识,例如 lock:order:create:{userId}
  • 设置合理过期时间与重入策略,避免死锁
RLock lock = redissonClient.getLock("lock:order:create:" + userId);
lock.lock();
try {
    // 业务处理
} finally {
    lock.unlock();
}
1
2
3
4
5
6
7

# 常见问题防护

  • 对缓存穿透使用空值缓存或参数校验策略
  • 对缓存击穿使用互斥锁或单飞策略
  • 对缓存雪崩通过随机过期时间与多级缓存缓解
Cursor
database-entity-annotations

← Cursor database-entity-annotations→

github
Theme by Vdoing | Copyright © 2024-2026 Hidewnd
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式