【Redis】缓存预热
发布时间:2023年12月23日
常见缓存
● 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 数据网格)
对比
- 如果你用的是 Spring,并且没有过多的定制化要求,可以用 Spring Data Redis,最方便
- 如果你用的不是 SPring,并且追求简单,并且没有过高的性能要求,可以用 Jedis + Jedis Pool
- 如果你的项目不是 Spring,并且追求高性能、高定制化,可以用 Lettuce,支持异步、连接池
- 如果你的项目是分布式的,需要用到一些分布式的特性(比如分布式锁、分布式集合),推荐用 redisson
设计缓存key
- 公司为了节约成本,多个项目有可能共用一个redis。所以这就要求我们redis中的key不能有冲突
system:module:func:options
- 注意:一定要设置过期时间!!!
缓存预热
优点:
缺点:
- 增加开发成本(你要额外的开发、设计)
- 预热的时机和时间如果错了,有可能你缓存的数据不对
- 需要占用额外空间
怎么进行缓存预热
- 定时任务执行
- 手动触发执行
定时任务的实现
- Spring Scheduler(spring boot 默认整合了)
- Quartz(独立于 Spring 存在的定时任务框架)
- XXL-Job 之类的分布式任务调度平台(提供 界面 + sdk)
第一种方式使用:
- 主类开启
@EnableScheduling
- 给要定时执行的方法添加
@Scheduled
注解,指定 cron
表达式或者执行频率
文章来源:https://blog.csdn.net/weixin_44147535/article/details/135171190
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!