关于缓存,鄙人有个比较困扰的问题如下:
1、如果缓存中我缓存了findById的一条记录,通过该条记录也被其他方法findByOhter(String column)给缓存了起来。此时,如果该条记录update或者deleteById,那么findById的缓存,可以很直接的删掉,但是findByOhter的缓存要怎么删掉呢?
注意点:findByOther的缓存key可能是通过column作为唯一标识,但是deleteById却只有id,没有相关的column。
2、分页数据是不是不建议缓存,因为如果分页数据缓存,只要数据有变动(插入、更新和删除),都要把缓存里面的分页数据删掉。
3、对于实时性比较高,而且更新频率比较快的数据,是不是不建议用缓存,直接查库?
4、不知道jfinal.com的缓存是缓存了那些数据,波总能分享下不。
1:细粒度来说,缓存的更新、与同步精确到每一个 model,例如 jfinal 对所有的用户 model 采用的细粒度方案,因为整个社区处处都要用到不同用户的头像、昵称、id 这样的数据,当某个用户的数据更新了,只需要清掉缓存中的对应的用户就行
2:大粒度来说,缓存的是整个 list、paginate 之类的数据,例如对于所有 project 数据,缓存 list,当 project 中任何数据有更新时,清掉缓存中的整个 list 缓存