MyBatis缓存结构

Mybatis Cache结构图:
161821098917928.png

CacheKey(statementId, sql, sqlParams,other)。
上图展示了Mybatis Cache的结构:
1)每个Mapper对应一块缓存存储
2)Redis缓存存储key为mapper名称,value为哈希表 (主要操作缓存方法为hset,hdel,del,访问api由jedis提供)

3,Mybatis缓存与insert/update/delete/query等crud方法的交互
1)执行query成功时,缓存会增加一条记录,比如UserMapper的queryUser结果,会存入一条field=CacheKey, value= queryUser结果集的记录到key为User的缓存块。
2)执行insert/update/delete方法时,会清理key为User的缓存块内容
3)当一个Mapper发生写操作时,实际的db数据可能发生变化,此时清理缓存是合理的,另一方面如果使用缓存,一张db表的操作都应在一个mapper当中,并且最好一一对应

对于Redis而言,实现这个逻辑比较易于实现,因为它本身支持value为HashMap的缓存结构。

转载于:https://www.cnblogs.com/fangfan/p/4652143.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值