常用缓存redis,springCache

缓存:
数据库和应用程序之间的中间层使用,缓解数据库压力,存放不经常改变,但经常查询的数据,
缓存作用:

  1. 查询时先查询缓存,不存在时,在查询数据库,增删改时更新缓存
  2. 查询时,只查询缓存,在增删改时,直接更新缓存常见问题:会造成脏读,缓存清理.

实际使用:
我们在作项目的时候,思路就是:对于会重复查询,重复使用的数据进行了缓存,缓存之后,再次需要数据的时候,先从缓存中查询读取,如果缓存中有我们需求的数据,直接从缓存中取,如果没有再去数据库中查询,查询之后把数据放入缓存.
服务选择的时候,考虑了两个,分别是redis,springCache.

  1. springCache是spring家族封装的轻量级缓存框架,代码级缓存,实际上是使用JVM的内存来缓存对象的,在根据id查询的时候性能较为突出,但不能设计过期时间,在验证登录的时候满足不了需求,而且在增删改的时候性能较弱,只适合单机环境,底层集成而ecache,(hibernate,mybatis),SpringCache作缓存的话是建立在JVM上的,所以项目启动之后缓存是自动消失的
  2. redis是一个缓存服务器,内存级别,使用内存进行缓存,可以使用过期时间,在增删改的性能上,可以用做分布式集群,可以持久化,redis做缓存的话,相当于是一个第三方缓存,所以项目重启之后缓存数据还是存在的
  3. memcached:数据类型单一,string,支持分布式,
    我们选择的是redis+springcache,即可以很方便的缓存对象,同时用来缓存的内存的是使用redis的内存,不会消耗JVM内存,提升了性能

缓存的用法:2种
方法1:查询时,先查询缓存,没有了查询数据库,查询到以后,放入缓存。在增删改时,删除缓存;
方法2:查询时,只查询缓存。在增删改时,直接更新缓存;
1、页面缓存-浏览器
2、ehcache(hibernate、mybatis)单机版缓存-内存
3、分布式缓存:memcached、redis
4、spring提供1中缓存框架,可以集成各种缓存,使我们更方便的应用缓存;
一般都是通过注解的方式:
@ablecache;先去缓存查找,找不到了去数据库,查到后放入缓存;key默认以方法名和参数列表;
@cacheEvent;加在修改和删除,修改和删除后会删除缓存
@cachePut

以上为个人理解,如果有说错的,误导了你,请多包涵,谢谢

上一篇:SpringCache源码简单研究


下一篇:SpringBoot基础系列-SpringCache使用