缓存是一个很宽泛的概念,也和硬件联系的较为紧密,比如存储器中使用高速寄存器作为磁盘的缓存,也有软件的部分,比如著名的redis,ehcache,memcache等,还可以自定义缓存,在spring,mybatis中也使用缓存。作为缓存器,其使用都较为简单,关键是在合适的情景下使用,起到事倍功半的效果。
有没有设想这样的场景?用户多次访问相同的url,结果也是一样,并且这一次完整的访问非常耗时。这时我们就想做一个缓存。缓存存什么?是存url和相应的结果?还是这次请求中某些步骤的结果?mybatis中基于数据库的查询结果的缓存很好理解,
那么首先我们看一下Spring中是怎么使用缓存的。在spring中关键是CacheManager的配置,看我们配置怎么样的缓存。关于缓存的方法,我们就不用操作了。这其实也是来自老大的一个服务的缓存,我之前也看到过spring cache,因为我自己很少用到,并且章节就15页,就没有仔细看。现在既然服务用到了,就得好好学习,这样的实践才有意义。从目录看,使用缓存就两步:1.配置缓存器(bean)2.在需要的地方使用(@Cacheable)。使用spring的缓存就这么简单, 这也是spring的风格。
等等,其实sping中的缓存,不仅允许你将缓存写在内存中,还可以写在redis,EhCache中,给缓存使用提供了极大的灵活性。等等,还有一件重要的事,就是可以使用SpEL来条件化的缓存数据。好了书本的374页已经很经典了,可以多写代码自己试试看。
参考资料:<<Spring in action>>
缓存比较:https://www.cnblogs.com/qlqwjy/p/7788912.html
ehcache的使用:https://www.jianshu.com/p/154c82073b07