缓存服务
#
缓存配置框架原生支持caffeine、redis缓存,集群状态时自动添加ignite支持,非集群状态时,caffeine是默认缓存。下面是配置实例:
#
缓存应用#
通用缓存框架对缓存操作进行了统一封装,不管是caffeine、redis都可以通过一套接口进行操作,透明切换缓存类型。通过Ready.cacheManager().getCache()可以获得当前主缓存实例,然后就可以进行各种缓存操作,见下面的实例:
当然,一般不需要像上面这样封装,直接利用缓存实例进行操作即可,这里只是把演示内容放在一起而已。如果主缓存是redis类型,需要redis的高级功能,可以通过以下方式获得:
- ((RedisCache)cache).getJedis();
- ((RedisCache)cache).getJedisCluster();
#
AOP缓存AOP缓存是一套建立在AOP技术基础上的动态缓存机制。通过@Cacheable、@CacheEvict、@CachesEvict、@CachePut几个注解即可动态进行缓存操作。出于性能考虑,默认使用的是caffeine缓存。见下面的实例:
通过AOP缓存可以大幅度对提高系统性能。但需要注意的是,如果缓存对象的数据在多个不同的类中进行了修改时,这些地方都需要@CacheEvict进行缓存清理。所以,通过ModeService层统一对单表进行增删改查就会很方便。
#
数据库缓存数据库缓存对一些基本上不做变更的数据表很有用,查询一次后就会自动缓存,大幅度提高查询性能。出于性能考虑,默认使用的是caffeine缓存。见下面的实例:
数据库缓存不会自动清理,所以缓存结果不会因为数据库变更而变更,只适合对数据不会变动的表进行缓存。
#
更多文档以上为本框架提供的常用缓存方式介绍,还有更多缓存方面的文档将在后续不断完善,重点内容将以专题形式提供。