【Redis】缓存预热

目录

常见缓存

● Redis(分布式缓存)

● memcached(分布式)

● Etcd(云原生架构的一个分布式存储,存储配置 ,扩容能力)

● ehcache(单机)

● 本地缓存(Java 内存 Map)

● Caffeine(Java 内存缓存,高性能)

● Google Guava


Redis客户端

  • Spring-Data-Redis
    • Spring Data 是通用的数据访问框架,定义了一组 增删改查 的接口。mysql、redis、jpa实现了这个接口
  • Jedis
    • 独立于 Spring 操作 Redis 的 Java 客户端,要配合 Jedis Pool 使用
  • Lettuce
    • 高阶的操作 Redis 的 Java 客户端
    • 异步、连接池
  • Redisson
    • 分布式操作 Redis 的 Java 客户端,让你像在使用本地的集合一样操作 Redis(分布式 Redis 数据网格)

对比

  1. 如果你用的是 Spring,并且没有过多的定制化要求,可以用 Spring Data Redis,最方便
  2. 如果你用的不是 SPring,并且追求简单,并且没有过高的性能要求,可以用 Jedis + Jedis Pool
  3. 如果你的项目不是 Spring,并且追求高性能、高定制化,可以用 Lettuce,支持异步、连接池
  4. 如果你的项目是分布式的,需要用到一些分布式的特性(比如分布式锁分布式集合),推荐用 redisson

设计缓存key

  • 公司为了节约成本,多个项目有可能共用一个redis。所以这就要求我们redis中的key不能有冲突
  • system:module:func:options
  • 注意:一定要设置过期时间!!!

缓存预热

优点:

  • 提高用户访问速度

缺点:

  • 增加开发成本(你要额外的开发、设计)
  • 预热的时机和时间如果错了,有可能你缓存的数据不对
  • 需要占用额外空间

怎么进行缓存预热

  1. 定时任务执行
  2. 手动触发执行

定时任务的实现

  1. Spring Scheduler(spring boot 默认整合了
  2. Quartz(独立于 Spring 存在的定时任务框架)
  3. XXL-Job 之类的分布式任务调度平台(提供 界面 + sdk)

第一种方式使用:

  1. 主类开启 @EnableScheduling
  2. 给要定时执行的方法添加 @Scheduled 注解,指定 cron 表达式或者执行频率
相关推荐
城管不管6 小时前
重生——第十一次面试之挖财一面2026.8.19已OC
java·服务器·jvm·数据库·spring·面试·职场和发展
倔强的石头1066 小时前
向量数据库从相似度检索走向融合数据底座
数据库
今天AI了吗8 小时前
Python 基础语法(一):常量、变量、输入输出与运算符
开发语言·数据库·人工智能·python·sql·深度学习·机器学习
阿里巴巴P8资深技术专家8 小时前
Redis连接工具 —— Redis Manager
redis
CDN3609 小时前
CDN 缓存策略优化实操:出海业务提升缓存命中率,TTL、缓存 Key、刷新配置与踩坑总结
缓存·cdn加速·cdn防护·360cdn
lilian2339 小时前
Harmony os 技术实战|拼豆制图27:用单字符编码承载 50 张 70×70 图纸
前端·数据库·华为·harmonyos
皮卡丘不断更9 小时前
手机优先的 Personal Ledger:把账目、学习和复盘放到同一个入口
数据库·sqlite·fastapi·开源项目·个人效率
保卫大狮兄10 小时前
设备管理从台账到报废,完整生命周期一次讲清
数据库·设备管理·设备
数据安全技术观察11 小时前
数据动态脱敏:让脱敏策略跟着数据目录走
大数据·网络·数据库
小席是个热心肠11 小时前
Redis的自我学习
数据库·redis·学习