常见问题 缓存穿透,雪崩,击穿
下面的文章里都有详细介绍
http://blog.youkuaiyun.com/zeb_perfect/article/details/54135506
http://ifeve.com/concurrency-cache-cross/
二级缓存
引入二级缓存带来的好处是增加系统的高可用,比如guava cahche + redis,当redis 挂掉之后,重要数据还可以通过guava继续提供。二级缓存容量较小,所以一般缓存关键链路的数据。
缺点就是会带来缓存数据一致性的问题,所以要看自己的使用场景。
常用的二级缓存:
caffeine
guava cache
Spring框架中使用缓存
在实际开发中,缓存的使用基本上有一些固定的套路和场景,所以spring 做了一个cache的抽象,开发中可以直接使用。 spring cacheable abstraction
这里是使用底层使用redis 缓存的例子 redis cache manager config
spring 提供的cacheable 能满足大部分的需求,但是也有一些功能没有实现,下面是开源社区对cacheable的扩展:面对缓存,有哪些问题需要思考?