缓存的工作原理

1.缓存的工作流程

缓存主要针对select查村语句作用的

1)第一次查询将数据写入缓存

2)第二次查询时,先看缓存中是否有,有,提取。

3)期间针对此缓存的任何insert/update/delet操作,都触发将缓存清空。

以mybatis的二级缓存为例,缓存流程都一样,不论一级缓存,还是二级缓存,抑或者缓存框架ehcache等。流程全一样:

 

 

Mybatis的一级缓存是指SqlSession。一级缓存的作用域是一个SqlSessionMybatis默认开启一级缓存

在同一个SqlSession中,执行相同的查询SQL,第一次会去查询数据库,并写到缓存中;第二次直接从缓存中取。当执行SQL时两次查询中间发生了增删改操作,则SqlSession的缓存清空。

 

Mybatis的二级缓存是指mapper映射文件。二级缓存的作用域是同一个namespace下的mapper映射文件内容,多个SqlSession共享。Mybatis需要手动设置启动二级缓存

在同一个namespace下的mapper文件中,执行相同的查询SQL,第一次会去查询数据库,并写到缓存中;第二次直接从缓存中取。当执行SQL时两次查询中间发生了增删改操作,则二级缓存清空。

posted @ 2016-09-10 16:24  跨境电商杂货铺  阅读(1303)  评论(0编辑  收藏  举报