分布式锁常见使用场景与问题解决办法

57 阅读1分钟

一、常见的分布式锁使用场景

1、系统是一个分布式系统,集群部署,Java的锁已经锁不住了。

2、操作共享资源,比如库里唯一的用户数据。

3、同步访问,即多个进程同时操作共享资源。

二、分布式锁解决方案

1、Redis的分布式锁,如setnx key value ex 10s,常见使用Redisson框架

2、基于Zookeeper。顺序临近节点

3、基于数据库,比如MySQL。主键或唯一索引的唯一性

三、Redis分布式死锁解决思路

1、加锁,没有释放锁。需要加释放锁的操作,比如delete key 。

2、加锁后,程序还没有执行释放锁,程序挂了。需要用key的过期机制。