zxpnet网站 zxpnet网站
首页
前端
后端服务器
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

zxpnet

一个爱学习的java开发攻城狮
首页
前端
后端服务器
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 大后端课程视频归档
  • 南航面试题
  • 并发编程

  • 性能调优

  • java8语法

  • lombok

  • 日志

  • 工具类

  • spring

  • mybatis

  • springboot

  • redis

    • redis6基础
    • redis分布式锁
      • redis实现分布式锁
        • 上锁:setnx
        • 解锁: del keys
        • 给锁设置一个过期时间
        • 上锁设置过期时间原子性
        • 锁误删的问题
        • 锁的自动续期问题
        • redis集群环境锁丢失问题
    • 高级Redis6应用进阶课 一站式Redis解决方案
    • redis面试题
  • zookeeper

  • springcloud

  • dubbo

  • netty

  • springsecurity

  • mq消息中间件

  • shiro

  • beetle

  • 模板引擎

  • jpa

  • 数据结构与算法

  • 数据库知识与设计

  • gradle

  • maven

  • bus

  • 定时任务

  • docker

  • centos

  • 加解密

  • biz业务

  • pigx项目

  • 开源项目

  • 品达通用权限项目-黑马

  • 货币交易项目coin-尚学堂

  • php

  • backend
  • redis
shollin
2021-07-19
目录

redis分布式锁

  • redis实现分布式锁
    • 上锁:setnx
    • 解锁: del keys
    • 给锁设置一个过期时间
    • 上锁设置过期时间原子性
    • 锁误删的问题
    • 锁的自动续期问题
    • redis集群环境锁丢失问题

# redis实现分布式锁

# 上锁:setnx

# 给keys上锁
setnx keys value
1
2

将 key 的值设为 value ,当且仅当 key 不存在。若给定的 key 已经存在,则 SETNX 不做任何动作

# 解锁: del keys

# 给锁设置一个过期时间

expire keys seconds

# 上锁设置过期时间原子性

set key uuid nx ex seconds

# 锁误删的问题

a请求时,拿到了锁,然后进行业务处理,业务处理时间长,超过了过期时间,锁自动释放。这时B请求拿到了锁,开始处理业务。a处理完业务后,如果释放锁,就会将B请求的锁删除掉。造成锁误删的情况。

image-20210719185139694

# 锁的自动续期问题

如果锁过期时间短,则业务执行较长,在执行业务的时候,如何保证锁的自动续期(看门狗)

# redis集群环境锁丢失问题

redis集群,主节点往从节点同步复制的时候,如果主节点挂了,redis是ap模式(a为高可用,p为容错性,c为一致性);这时拿从节点的数据,里面没有锁。

image-20210720111846682

redis6基础
高级Redis6应用进阶课 一站式Redis解决方案

← redis6基础 高级Redis6应用进阶课 一站式Redis解决方案→

最近更新
01
国际象棋
09-15
02
成语
09-15
03
自然拼读
09-15
更多文章>
Theme by Vdoing | Copyright © 2019-2023 zxpnet | 粤ICP备14079330号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式