一、常见的分布式锁使用场景
1、系统是一个分布式系统,集群部署,Java的锁已经锁不住了。
2、操作共享资源,比如库里唯一的用户数据。
3、同步访问,即多个进程同时操作共享资源。
二、分布式锁解决方案
1、Redis的分布式锁,如setnx key value ex 10s,常见使用Redisson框架
2、基于Zookeeper。顺序临近节点
3、基于数据库,比如MySQL。主键或唯一索引的唯一性
三、Redis分布式死锁解决思路
1、加锁,没有释放锁。需要加释放锁的操作,比如delete key 。
2、加锁后,程序还没有执行释放锁,程序挂了。需要用key的过期机制。