并发导致redis rightPush重复数据,求助!

头发太多怎么办hh~ 2018-08-25 11:48:38
求教。
这么个场景,用的SpringCloud,我用feign远程调用了公司内部的一个大数据服务的一个获取数据+计算的接口,得到的是list,这个接口耗时较长,大概十几秒钟,所以用了redis缓存。由于还要分页,所以将list中的元素遍历,用rightPush依次扔到redis中的某个key中。
这样的话就会有个问题,多个请求同时到达时,都会判断redis key中是否有值,没值的时候再调用大数据服务接口,然后遍历依次存储,这样就会导致redis中存储的数据重复。
想达到这么个效果:假设同时进来了100个请求,第一个请求去判断redis key是否有值,没值的话就去调用大数据接口,获取数据再保存到redis中,剩下的99个请求在之后再判断key是否有值。
请大家不吝赐教。
...全文
1385 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
oyljerry 2018-08-27
  • 打赏
  • 举报
回复
那就要加个锁。其他等待第一个取回数据到redis

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧