缓存概述
缓存模块是以EhCache作为默认JVM进程内缓存服务,通过整合外部redis服务实现多级缓存(MultiLevel)的轻量级缓存框架,并与YMP框架深度集成(支持针对类方法的缓存,可以根据方法参数值进行缓存),灵活的配置、易于使用和扩展;
maven包依赖
<dependency> <groupId>net.ymate.platform</groupId> <artifactId>ymate-platform-cache</artifactId> <version>2.0-SNAPSHOT</version> </dependency>
注:
- 在项目的pom.xml中添加上述配置,该模块已经默认引入核心包依赖,无需重复配置。
若需要启用redis作为缓存服务,请添加以下依赖配置:
<dependency> <groupId>net.ymate.platform</groupId> <artifactId>ymate-platform-persistence-redis</artifactId> <version>2.0-SNAPSHOT</version> </dependency>
基础接口概念
开发者可以根据以下接口完成对缓存模块的自定义扩展实现;
-
缓存服务提供者(ICacheProvider)接口:
- DefaultCacheProvider - 基于EhCache缓存服务的默认缓存服务提供者接口实现类;
- RedisCacheProvider - 基于Redis数据库的缓存服务提供者接口实现类;
- MultievelCacheProvider - 融合EhCache和Redis两者的缓存服务提供者接口实现类,通过MultilevelKey决定缓存对象的获取方式;
-
缓存Key生成器(IKeyGenerator)接口:
- DefaultKeyGenerator - 根据提供的类方法和参数对象生成缓存Key,默认是将方法和参数对象进行序列化后取其MD5值;
-
序列化服务(ISerializer)接口:
- DefaultSerializer - 默认序列化服务采用JDK自带的对象序列化技术实现;
缓存事件监听(ICacheEventListener)接口:用于监听被缓存对象发生变化时的事件处理,需开发者实现接口;
缓存作用域处理器(ICacheScopeProcessor)接口:用于处理@Cacheable注解的Scope参数设置为非DEFAULT作用域的缓存对象,需开发者实现接口;