1 | <settings> |
一级缓存与二级缓存的不同:
sqlsession一旦关闭,则sqlsession中的数据将不存在,就是一级缓存不存在的。而二级缓存的生命周期会与整个应用同步,与sqlsession是否关闭无关。
一级缓存在同意线程间共享数据,而二级缓存是在不同线程间共享数据。
一级缓存就是select查出来数据,他是根据namespace和id一起确定缓存的,而hibernate就是根据id来查的,增删改清空缓存。
二级缓存:
1 | <cache eviction =” FIFO” flushInterval =”1080000″ readOnly =”true” size=”512″> |
LRU – 最近最少使用的:移除最长时间不被使用的对象。
FIFO – 先进先出:按对象进入缓存的顺序来移除它们。
flushInterval :刷新缓存的时间间隔,一般是毫秒。
readOnle:是否只读
size:二级缓存的数量