redis分布式锁和lua脚本
因为jvm的synorchonized只能保证自己的服务,在集群部署的时候有多个服务,锁不住jvm服务。jvm的内置锁只能解决单体式项目中的并发问题,但是在分布式环境下,无法解决多jvm实例的并发。Synchronized锁的是对象,对象必须是单例的。锁的是this,代表当前所在的类,这个类是交给Spring 管理的。如果加完redis的key以后程序挂了,那么这个key就释放不了,就会一直在里面,会造成死锁:解决方式——设置超时时间。解决方法一:利用jvm内置锁,将非原子性操作变成原子性操作。
1赞
踩