Redis 分布式锁不能解决超时的问题,分布式锁有一个超时时间,程序的执行如果超出了锁的超时时间就会出现问题。

近两年来微服务变得越来越热门,越来越多的应用部署在分布式环境中,在分布式环境中,数据一致性是一直以来需要关注并且去解决的问题,分布式锁也就成为了一种广泛使用的技术。

常用的分布式实现方式为Redis,Zookeeper,其中基于Redis的分布式锁的使用更加广泛。

不论是基于SETNX版本的Redis单实例分布式锁,还是Redlock分布式锁,都是为了保证下特性

安全性:在同一时间不允许多个Client同时持有锁

活性 死锁:锁最终应该能够被释放,即使Client端crash或者出现网络分区(通常基于超时机制) 容错性:只要超过半数Redis节点可用,锁都能被正确获取和释放 所以在开发或者使用分布式锁的过程中要保证安全性和活性,避免出现不可预测的结果。

另外每个版本的分布式锁都存在一些问题,在锁的使用上要针对锁的实用场景选择合适的锁,通常情况下锁的使用场景包括:

Efficiency(效率):只需要一个Client来完成操作,不需要重复执行,这是一个对宽松的分布式锁,只需要保证锁的活性即可;

Correctness(正确性):多个Client保证严格的互斥性,不允许出现同时持有锁或者对同时操作同一资源,这种场景下需要在锁的选择和使用上更加严格,同时在业务代码上尽量做到幂等

在Redis分布式锁的实现上还有很多问题等待解决,我们需要认识到这些问题并清楚如何正确实现一个Redis 分布式锁,然后在工作中合理的选择和正确的使用分布式锁。

redis 分布式锁有什么缺陷相关推荐

  1. Redis 分布式锁进化史解读+缺陷分析

    Redis分布式锁进化史 近两年来微服务变得越来越热门,越来越多的应用部署在分布式环境中,在分布式环境中,数据一致性是一直以来需要关注并且去解决的问题,分布式锁也就成为了一种广泛使用的技术,常用的分布 ...

  2. Redis分布式锁的实现原理

    目前基于Redis实现的分布式锁常用的框架是Redisson,它的使用比较简单,在项目中引入Redisson的依赖,然后基于Redis实现分布式锁的加锁与释放锁. Redis分布式锁的底层原理 ​ R ...

  3. Redis分布式锁的实现原理看这篇就够了~

    2019独角兽企业重金招聘Python工程师标准>>> 一.写在前面 现在面试,一般都会聊聊分布式系统这块的东西.通常面试官都会从服务框架(Spring Cloud.Dubbo)聊起 ...

  4. 面试必问:如何实现Redis分布式锁

    摘要:今天我们来聊聊分布式锁这块知识,具体的来看看Redis分布式锁的实现原理. 一.写在前面 现在面试,一般都会聊聊分布式系统这块的东西.通常面试官都会从服务框架(Spring Cloud.Dubb ...

  5. redis 分布式锁 看门狗_redis分布式锁原理及实现

    一.写在前面 现在面试,一般都会聊聊分布式系统这块的东西.通常面试官都会从服务框架(Spring Cloud.Dubbo)聊起,一路聊到分布式事务.分布式锁.ZooKeeper等知识. 所以咱们这篇文 ...

  6. Redis分布式锁的原理以及如何续期

    面试问题 Redis锁的过期时间小于业务的执行时间该如何续期? 问题分析 首先如果你之前用Redis的分布式锁的姿势正确,并且看过相应的官方文档的话,这个问题So easy.我们来看 很多同学在用分布 ...

  7. Redis分布式锁(图解 - 秒懂 - 史上最全)

    文章很长,而且持续更新,建议收藏起来,慢慢读! 高并发 发烧友社群:疯狂创客圈(总入口) 奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : 极致经典 + 社群大片好评 < Java 高并发 三 ...

  8. redis分布式锁原理及实现

    一.写在前面 现在面试,一般都会聊聊分布式系统这块的东西.通常面试官都会从服务框架(Spring Cloud.Dubbo)聊起,一路聊到分布式事务.分布式锁.ZooKeeper等知识. 所以咱们这篇文 ...

  9. 一文看透 Redis 分布式锁进化史(解读 + 缺陷分析)(转)

    近两年来微服务变得越来越热门,越来越多的应用部署在分布式环境中,在分布式环境中,数据一致性是一直以来需要关注并且去解决的问题,分布式锁也就成为了一种广泛使用的技术,常用的分布式实现方式为Redis,Z ...

最新文章

  1. 利用angular4和nodejs-express构建一个简单的网站(六)—用户模块和路由分析
  2. 电脑技巧:电脑常用快捷键大全,值得收藏!
  3. 小谈React、React Native、React Web
  4. C++:类的成员函数
  5. 项目class第十四周项目一:动物学叫
  6. recvfrom函数 非阻塞_那些年让你迷惑的阻塞、非阻塞、异步、同步
  7. maven 阿里云仓库
  8. 控制台上对同一个设备进行数据收发监控
  9. NTFS与FAT 32的区别
  10. java实现多图片打包下载(附前后端代码)
  11. 30天自制操作系统第10天harib07d
  12. 很多情侣看了以后,不在关机
  13. NeoCognitron
  14. 大学选修课计算机心得,大学选修课心得体会范文五篇
  15. 众筹开班你说了算!UI设计+前端开发一站式打包学
  16. Java安卓适配全面屏_Android APP全面屏适配技术要点
  17. 《程序员的呐喊》一一1.1 作者手记:巴别塔
  18. 疑似网易泄露用户密码事件浅析
  19. python 安装模块requests、bs4、html5lib、 lxml、matplotlib
  20. 你离心想事成只差一个计划 | 进击

热门文章

  1. vue钩子函数是什么,有什么没用
  2. 如何启动一个node服务器用来mock数据
  3. 十分钟带你了解XXE
  4. 用XSSFWorkbook导出合并单元格样式的excel表格
  5. CCNP--PVLAN-----交换安全
  6. python可以调用c语言吗_python 调用c语言详解
  7. 什么是多层前馈神经网络,多层前馈神经网络原理
  8. 2022-2027年中国布洛芬缓释片行业市场调研及未来发展趋势预测报告
  9. mysql中怎么加全文索引_MySQL添加全文索引(一)
  10. 计算机专业手抄报作文,制作电脑小报作文