使用本地缓存中的常见问题

我们在开发程序过程中经常会遇到缓存数据的情况,尤其是电商行业并发量很高,不用缓存是真心扛不住。这不快到双十一了吗?我们又开始提前准备了。

先跟大家说下我们使用本地缓存框架是EHCache,虽然EHCache已经很老了,但是还是非常强大的,每个元素都能设置过期时间,元素过期有很多策略可以选择,这里就不讲EHCache功能了,想必大家也是很了解的,

好了聊聊正题,我们使用本地缓存的时候需要注意什么。当我们查询底层数据需要缓存的时候,我们怎么保存?肯定有很多小伙伴说了保存Object呀,这还用问。是呀保存Object很方便,取出使用也很方便。这里就会有一个隐藏的坑,如果我们把Obj取出来的时候,我们只是读数据可以,万一我们要进行加工修改,下次再取出来那就是你上次修改过的内容,这个很重要。这就悲催了!那怎么办?我们的做法是把Object直接转成Json使用fastJson转换,然后使用的时候再次序列化成类。

但是这里面也有坑!有坑!就是你在用fastJson转来转去的过程中,可能你的类使用了fastJson的注解@JSONField(serialize = false) 这个注解的意思是在转Json忽略此字段。那么当你再次使用这个Object时这个字段就会没有值了。头疼!一个简单的问题怎么这么复杂!

好吧我们又自己定义了一个注解来取代@JSONField,这样算是把坑都填了。有小伙伴说怎么不用别的方法转呢,我们之前也使用过Kryo serialization进行转换。但是这个工具依赖的版本不一样就会报错。因为我们是要做成公共平台工具的,大家使用的时候排查依赖包特别麻烦,最后衡量还是我们自己麻烦点,让各个部门人用得爽一点。

最后给大家介绍下我们开发平台里的缓存工具有啥功能,我们提供两个方法一个是存数据的,一个取数据的,可以使用本地缓存也可以使用redis缓存,任选并且可以后台动态修改使用哪个缓存和缓存时间。而且还能查看缓存里的数据,是不是很强大啊!如果大家有兴趣可以给我留言,有时间我跟大家聊聊。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码定乾坤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值