乐趣区

整合Redis缓存实现

整合 Redis 缓存实现

Spring Boot 支持的缓存组件

在 Spring Boot 中,数据的缓存管理存储依赖于 Spring 框架中 cache 相关的 org.springframework.cache.Cache 和 org.springframework.cache.CacheManager 缓存管理器接口。

如果程序中没有定义类型为 CacheManager 的 Bean 组件或者是名为 cacheResolver 的 CacheResolver 缓存解析器,Spring Boot 将尝试选择并启用以下缓存组件(按照指定的顺序):

(1)Generic

(2)JCache (JSR-107) (EhCache 3、Hazelcast、Infinispan 等)

(3)EhCache 2.x

(4)Hazelcast

(5)Infinispan

(6)Couchbase

(7)Redis

(8)Caffeine

(9)Simple

上面按照 Spring Boot 缓存组件的加载顺序,列举了支持的 9 种缓存组件,在项目中添加某个缓存管理组件(例如 Redis)后,Spring Boot 项目会选择并启用对应的缓存管理器。如果项目中同时添加了多个缓存组件,且没有指定缓存管理器或者缓存解析器(CacheManager 或者 cacheResolver),那么 Spring Boot 会按照上述顺序在添加的多个缓存中优先启用指定的缓存组件进行缓存管理。

​ 刚刚讲解的 Spring Boot 默认缓存管理中,没有添加任何缓存管理组件能实现缓存管理。这是因为开启缓存管理后,Spring Boot 会按照上述列表顺序查找有效的缓存组件进行缓存管理,如果没有任何缓存组件,会默认使用最后一个 Simple 缓存组件进行管理。Simple 缓存组件是 Spring Boot 默认的缓存管理组件,它默认使用内存中的 ConcurrentMap 进行缓存存储,所以在没有添加任何第三方缓存组件的情况下,可以实现内存中的缓存管理,但是我们不推荐使用这种缓存管理方式
学习让人快乐,学习更让人觉得无知!学了 1 个多月的《Java 工程师高薪训练营》,才发现自己对每个技术点的认知都很肤浅,根本深不下去,立个 Flag:每天坚持学习一小时,一周回答网上 3 个技术问题,把自己知道都分享出来。

退出移动版