使用本地缓存中的常见问题「缓存不一致解决方案」
我们在开发程序过程中经常会遇到缓存数据的情况,尤其是电商行业并发量很高,不用缓存是真心扛不住。这不快到双十一了吗?我们又开始提前准备了。
先跟大家说下我们使用本地缓存框架是EHCache,虽然EHCache已经很老了,但是还是非常强大的,每个元素都能设置过期时间,元素过期有很多策略可以选择,这里就不讲EHCache功能了,想必大家也是很了解的,
好了聊聊正题,我们使用本地缓存的时候需要注意什么。当我们查询底层数据需要缓存的时候,我们怎么保存?肯定有很多小伙伴说了保存Object呀,这还用问。是呀保存Object很方便,取出使用也很方便。这里就会有一个隐藏的坑,如果我们把Obj取出来的时候,我们只是读数据可以,万一我们要进行加工修改,下次再取出来那就是你上次修改过的内容,这个很重要。这就悲催了!那怎么办?我们的做法是把Object直接转成Json使用fastJson转换,然后使用的时候再次序列化成类。
但是这里面也有坑!有坑!就是你在用fastJson转来转去的过程中,可能你的类使用了fastJson的注解@JSONField(serialize = false) 这个注解的意思是在转Json忽略此字段。那么当你再次使用这个Object时这个字段就会没有值了。头疼!一个简单的问题怎么这么复杂!
好吧我们又自己定义了一个注解来取代@JSONField,这样算是把坑都填了。有小伙伴说怎么不用别的方法转呢,我们之前也使用过Kryo serialization进行转换。但是这个工具依赖的版本不一样就会报错。因为我们是要做成公共平台工具的,大家使用的时候排查依赖包特别麻烦,最后衡量还是我们自己麻烦点,让各个部门人用得爽一点。
最后给大家介绍下我们开发平台里的缓存工具有啥功能,我们提供两个方法一个是存数据的,一个取数据的,可以使用本地缓存也可以使用redis缓存,任选并且可以后台动态修改使用哪个缓存和缓存时间。而且还能查看缓存里的数据,是不是很强大啊!如果大家有兴趣可以给我留言,有时间我跟大家聊聊。
相关文章
- 旅游产品在线营销分析「在线旅游市场度假发展数据」
- 美工要如何提升自身的技能才能月薪过万「美工学徒第一个月1000」
- 你不必假装自己很合群「不需要刻意合群有趣的人」
- 厦门代运营淘宝公司「知乎落地厦门」
- 创天下与仟亿资本正式达成战略合作了吗「创世伙伴资本」
- 临沧轻享优品贸易有限公司「临沧公众号」
- 000762西藏矿业股「西藏矿业(000762.SZ)要嗨了」
- 携程的发展对于旅游接待业而言有何启发「春秋旅行社盈利模式」
- 福建省消委会约谈7家电商平台并督促整改工作「福建消费网」
- 淘宝关于产品拍照建议怎么写「如何拍网店产品照片」
- 进博会浙江交易团「浙江京剧团」
- 饼干拍摄技巧「面包摄影」
- 外卖骑手的发展和保障饿了么和美团都是怎么做的「饿了么外卖骑手攻略」
- 如何学好美工基础,难不难学「如何避免少走弯路高效学习美工设计」
- saas入行的一点记录都没有吗「入库记录」
- 电商选货平台「二类电商投放什么平台」
- 直播带货真的是大势所趋吗有什么好处和坏处「直播带货是未来的趋势吗」
- 2021年江苏安全生产事故「2021年江苏大事故」