redis分布式锁的实现

一、引言

        我们在系统中修改已有数据时,需要先读取,然后进行修改保存,此时很容易遇到并发问题。由于修改和保存不是原子操作,在并发场景下,部分对数据的操作可能会丢失。在单服务器系统我们常用本地锁来避免并发带来的问题,然而,当服务采用集群方式部署时,本地锁无法在多个服务器之间生效,这时候保证数据的一致性就需要分布式锁来实现。

redis分布式锁的实现_第1张图片

二、分布式锁主流的实现方案

基于数据库实现分布式锁

基于缓存(Redis等)

基于Zookeeper

        每一种分布式锁解决方案都有各自的优缺点:

性能:redis最高

可靠性:zookeeper最高

三、基于redis实现分布式锁

        Redis 锁主要利用 Redis 的 setnx 命令

  • 加锁命令:SETNX key value,当键不存在时,对键进行设置操作并返回成功,否则返回失败。KEY 是锁的唯

你可能感兴趣的:(Redis,redis,数据库,分布式)