KKB: mybatis缓存

mybatis缓存:

一级缓存

SQLsession的缓存----默认开启

对于同一个session对象,进行两次查询数据的操作,第二次的session查询操作,不会去查询数据库,而是使用的SQLsession的缓存

只会进行一次查询数据库的操作,cache hit 是后面配置的二级缓存

二级缓存:

缓存里的数据是不安全的

做到从不同的缓存中共享数据(重要的数据:银行卡密码不要放到缓存中),需要手动开启

在映射mapper文件中配置,没有配置二级缓存的,不会走缓存数据,只有配置了缓存的mapper才会走缓存

参数都是固定的:各参数的含义

eviction ⼆级缓存中,缓存的对象从缓存中移除的策略,回收策略为先进先出

flushInterval 刷新缓存的事件间隔,单位:毫秒

size 缓存对象的个数

readOnly 是否是只读的、

二级缓存有效指定的是同一个sessionFactory生产出的不同的session

这里的 hit值,表示查询两次,其中一次用到了缓存,所以是 1/2

注意:使用二级缓存时,与查询结果映射的java对象必须实现java.io.Serializable接⼝的序列化和反序列化操作,如果存在⽗类,其成员都需要实现序列化接⼝,实现序列化接⼝是为了对缓存数据进⾏序列化

和反序列化操作,因为⼆级缓存数据存储介质多种多样,不⼀定在内存,有可能是硬盘或者远程服务器。二级缓存有可能存储到文件中,所以最好加上序列化接口

猜你喜欢

转载自blog.csdn.net/awodwde/article/details/113062631