Redis实现分布式锁

守給你的承諾、 提交于 2020-01-18 19:31:16
实现原理

基于Redis是单线程, 串行执行的

目的

解决在分布式应用中, 将并发变为串行, 减少数据库压力, 提升安全性能, 真实项目中, 我们是在多个服务器中同时上线我们的代码并被nginx反向代理, 对于并发下单的情况下, 大量的请求同时到达我们的mysql数据库, 我们虽然可以更改事务的隔离级别, 更改为串行执行, 但是多个并发请求压力还是已经到达了mysql中, 有没有什么办法可以在到达mysql之前, 让操作变为串行执行, redis实现分布式锁

模拟并发请求, 不用分布式锁的情况

在这里插入图片描述

分布式锁

在这里插入图片描述

改进(异常捕获)

在这里插入图片描述

改进(增加过期时间)

在这里插入图片描述

改进(另开线程实现自选锁)

在这里插入图片描述

最终版本

在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!