关于redis分布式锁问题

springboot有个StringRedisTemplate的setIfAbsent方法,意思是当某个key已经set过时,就会返回false,这样当返回false时就不需要重复处理数据,这样可以防止并发的时候,同一条数据重复插入,有谁知道jfinal有什么方式防止并发时重复插入相同数据吗?


评论区

JFinal

2020-06-08 14:52

还没在 reids 中玩过分布式,因为 redis 一般是作为一个中心节点来实现分布式架构下的数据共享的

redis 自身再分布式的话,事情就更复杂了,而且这得要是多大数据量用上了 redis 分布式

建议看一下 redis 文档,里头肯定是有这方面的配置的,应该不难

wrw

2020-06-08 18:11

@JFinal 好的,谢谢波总,主要是我们这边的业务都用了负载均衡,我再研究一下吧

JFinal

2020-06-08 18:15

@wrw 负载均衡看用在什么层面了,一般 redis 层面不需要负载均衡

SamUU

2020-06-08 22:44

@JFinal 他的意思应该是这样,前端用nginx做了负载均衡,后面启了3个同样的jfinal的web应用,应用里面都有个减库存的功能,这时候3个应用就不能用本地锁,得用分布式的锁来解决,jfinal有没有这样的插件可以解决。单体应用多个部署做负载的时候这种问题很常见,波总能否考虑官方支持下:)

opal

2020-06-09 05:47

https://www.cnblogs.com/linjiqin/p/8003838.html

wrw

2020-06-17 17:46

@SamUU 是的,差不多就是这个意思,目前很少采用单体架构了,如果只部署一台服务器,加个synchronized,肯定没问题

JFinal

2020-06-20 17:26

@SamUU jfinal 重点关注在 web + orm + aop + enjoy 这四个方面,不能平均使力,资源总是有限的

热门反馈

扫码入社