redis 分布式锁有什么缺陷
Redis 分布式锁不能解决超时的问题,分布式锁有一个超时时间,程序的执行如果超出了锁的超时时间就会出现问题。
近两年来微服务变得越来越热门,越来越多的应用部署在分布式环境中,在分布式环境中,数据一致性是一直以来需要关注并且去解决的问题,分布式锁也就成为了一种广泛使用的技术。
常用的分布式实现方式为Redis,Zookeeper,其中基于Redis的分布式锁的使用更加广泛。
不论是基于SETNX版本的Redis单实例分布式锁,还是Redlock分布式锁,都是为了保证下特性
安全性:在同一时间不允许多个Client同时持有锁
活性 死锁:锁最终应该能够被释放,即使Client端crash或者出现网络分区(通常基于超时机制) 容错性:只要超过半数Redis节点可用,锁都能被正确获取和释放 所以在开发或者使用分布式锁的过程中要保证安全性和活性,避免出现不可预测的结果。
另外每个版本的分布式锁都存在一些问题,在锁的使用上要针对锁的实用场景选择合适的锁,通常情况下锁的使用场景包括:
Efficiency(效率):只需要一个Client来完成操作,不需要重复执行,这是一个对宽松的分布式锁,只需要保证锁的活性即可;
Correctness(正确性):多个Client保证严格的互斥性,不允许出现同时持有锁或者对同时操作同一资源,这种场景下需要在锁的选择和使用上更加严格,同时在业务代码上尽量做到幂等
在Redis分布式锁的实现上还有很多问题等待解决,我们需要认识到这些问题并清楚如何正确实现一个Redis 分布式锁,然后在工作中合理的选择和正确的使用分布式锁。
redis 分布式锁有什么缺陷相关推荐
- Redis 分布式锁进化史解读+缺陷分析
Redis分布式锁进化史 近两年来微服务变得越来越热门,越来越多的应用部署在分布式环境中,在分布式环境中,数据一致性是一直以来需要关注并且去解决的问题,分布式锁也就成为了一种广泛使用的技术,常用的分布 ...
- Redis分布式锁的实现原理
目前基于Redis实现的分布式锁常用的框架是Redisson,它的使用比较简单,在项目中引入Redisson的依赖,然后基于Redis实现分布式锁的加锁与释放锁. Redis分布式锁的底层原理 R ...
- Redis分布式锁的实现原理看这篇就够了~
2019独角兽企业重金招聘Python工程师标准>>> 一.写在前面 现在面试,一般都会聊聊分布式系统这块的东西.通常面试官都会从服务框架(Spring Cloud.Dubbo)聊起 ...
- 面试必问:如何实现Redis分布式锁
摘要:今天我们来聊聊分布式锁这块知识,具体的来看看Redis分布式锁的实现原理. 一.写在前面 现在面试,一般都会聊聊分布式系统这块的东西.通常面试官都会从服务框架(Spring Cloud.Dubb ...
- redis 分布式锁 看门狗_redis分布式锁原理及实现
一.写在前面 现在面试,一般都会聊聊分布式系统这块的东西.通常面试官都会从服务框架(Spring Cloud.Dubbo)聊起,一路聊到分布式事务.分布式锁.ZooKeeper等知识. 所以咱们这篇文 ...
- Redis分布式锁的原理以及如何续期
面试问题 Redis锁的过期时间小于业务的执行时间该如何续期? 问题分析 首先如果你之前用Redis的分布式锁的姿势正确,并且看过相应的官方文档的话,这个问题So easy.我们来看 很多同学在用分布 ...
- Redis分布式锁(图解 - 秒懂 - 史上最全)
文章很长,而且持续更新,建议收藏起来,慢慢读! 高并发 发烧友社群:疯狂创客圈(总入口) 奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : 极致经典 + 社群大片好评 < Java 高并发 三 ...
- redis分布式锁原理及实现
一.写在前面 现在面试,一般都会聊聊分布式系统这块的东西.通常面试官都会从服务框架(Spring Cloud.Dubbo)聊起,一路聊到分布式事务.分布式锁.ZooKeeper等知识. 所以咱们这篇文 ...
- 一文看透 Redis 分布式锁进化史(解读 + 缺陷分析)(转)
近两年来微服务变得越来越热门,越来越多的应用部署在分布式环境中,在分布式环境中,数据一致性是一直以来需要关注并且去解决的问题,分布式锁也就成为了一种广泛使用的技术,常用的分布式实现方式为Redis,Z ...
最新文章
- 利用angular4和nodejs-express构建一个简单的网站(六)—用户模块和路由分析
- 电脑技巧:电脑常用快捷键大全,值得收藏!
- 小谈React、React Native、React Web
- C++:类的成员函数
- 项目class第十四周项目一:动物学叫
- recvfrom函数 非阻塞_那些年让你迷惑的阻塞、非阻塞、异步、同步
- maven 阿里云仓库
- 控制台上对同一个设备进行数据收发监控
- NTFS与FAT 32的区别
- java实现多图片打包下载(附前后端代码)
- 30天自制操作系统第10天harib07d
- 很多情侣看了以后,不在关机
- NeoCognitron
- 大学选修课计算机心得,大学选修课心得体会范文五篇
- 众筹开班你说了算!UI设计+前端开发一站式打包学
- Java安卓适配全面屏_Android APP全面屏适配技术要点
- 《程序员的呐喊》一一1.1 作者手记:巴别塔
- 疑似网易泄露用户密码事件浅析
- python 安装模块requests、bs4、html5lib、 lxml、matplotlib
- 你离心想事成只差一个计划 | 进击