前言
这篇文章介绍下如何实现redis来实现分布式锁及原理简介
原理简介
redis 获取分布式锁使用lua脚本的命令
- setnx
- pexpire(提供了毫秒的过期时间,expire提供了基于秒的过期时间)
- lua脚本(保证脚本中的命令被一起执行 不间断)
redis删除锁使用lua脚本的命令
- 先执行get
- 判断获取的值是否是自己设置的
- 如果是的话 则执行del操作
- lua脚本(保证脚本中的命令被一起执行 不间断)
流程图说明
代码实现
pom依赖
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency>
建立redis连接