我是靠谱客的博主 淡淡跳跳糖,最近开发中收集的这篇文章主要介绍【csnote】分布式锁、数据库唯一索引,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

分布式锁

在单机场景下,可以使用语言的内置锁来实现进程同步。但是在分布式场景下,需要同步的进程可能位于不同节点上,那么就需要分布式锁。

阻塞锁通常用互斥量来实现:

  • 互斥量为0表示有其他进程在使用锁,此时处于锁定状态
  • 互斥量为1表示未锁定状态

1和0可以用一个整型值来表示,也可以用某个数据是否存在表示

数据库的唯一索引

获得锁时向表中插入一条记录,释放时删除这条记录。唯一索引可以保证该记录只被插入一次,那么就可以用这个记录是否存在来判断是否处于锁定状态。

存在以下几个问题。

  • 锁没有失效时间,解锁失败的话其他进程无法获得该锁
  • 只能是非阻塞锁,插入失败就直接报错了,无法重试
  • 不可重入,已经获得锁的进程也必须重新获取锁

最后

以上就是淡淡跳跳糖为你收集整理的【csnote】分布式锁、数据库唯一索引的全部内容,希望文章能够帮你解决【csnote】分布式锁、数据库唯一索引所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部