缓存管理方案 AutoLoadCache 3.0 发布,重新设计批量删除缓存方案
2016-03-01 16:22:04 来源: qiujiayu 评论:0 点击:
3 0 此版本做了大调整,有些功能已经不兼容老版本 不再使用默认缓存Key,所有的缓存都必须自定义缓存Key;原来使用$hash()来调用hash函数,改为使用 hash()进行调用。 之前版本中使用通配符(?和*)进行批量删除缓存,这种方法性能比较差,需要多次与Redis进行交互,而且随着缓存Key的数量的增加,性能也会下降,如果有多个Reids实例的话,还需要遍历每个
3.0 此版本做了大调整,有些功能已经不兼容老版本
不再使用默认缓存Key,所有的缓存都必须自定义缓存Key;原来使用$hash()来调用hash函数,改为使用#hash()进行调用。
之前版本中使用通配符(?和*)进行批量删除缓存,这种方法性能比较差,需要多次与Redis进行交互,而且随着缓存Key的数量的增加,性能也会下降,如果有多个Reids实例的话,还需要遍历每个实例。为了解决这个问题,我们使用hash表保存需要批量删除的缓存,要批量删除缓存时,只要把hash表删除就可以了。
如果在开发阶段不想使用Redis来缓存数据,可以使用com.jarvis.cache.map.CachePointCut,把数据缓存到本地内存中,虽然它不支持使用通配符进行批量删除缓存,但同样支持使用hash表进行批量删除缓存。所以转用Redis缓存数据是没有任务问题的。
如果需要在MyBatis Mapper中使用@Cache和@CacheDelete,则需要使用com.jarvis.cache.mybatis.CachePointCutProxy 来处理。
详细内容,请到github上查阅:AutoLoadCache
不再使用默认缓存Key,所有的缓存都必须自定义缓存Key;原来使用$hash()来调用hash函数,改为使用#hash()进行调用。
之前版本中使用通配符(?和*)进行批量删除缓存,这种方法性能比较差,需要多次与Redis进行交互,而且随着缓存Key的数量的增加,性能也会下降,如果有多个Reids实例的话,还需要遍历每个实例。为了解决这个问题,我们使用hash表保存需要批量删除的缓存,要批量删除缓存时,只要把hash表删除就可以了。
如果在开发阶段不想使用Redis来缓存数据,可以使用com.jarvis.cache.map.CachePointCut,把数据缓存到本地内存中,虽然它不支持使用通配符进行批量删除缓存,但同样支持使用hash表进行批量删除缓存。所以转用Redis缓存数据是没有任务问题的。
如果需要在MyBatis Mapper中使用@Cache和@CacheDelete,则需要使用com.jarvis.cache.mybatis.CachePointCutProxy 来处理。
详细内容,请到github上查阅:AutoLoadCache
相关热词搜索:AutoLoadCache Spring redis cache aop opensource 开源软件
分享到:
收藏