首页 > 数据库 >基于redis做分布式锁

基于redis做分布式锁

时间:2024-03-11 16:33:05浏览次数:23  
标签:基于 redis 获取 expire key setnx 分布式

1. setnx其实是set key nx,做分布式锁的问题是担心获取到锁的那个线程还没执行del得时候挂了,key会永久存在,可以给key加上expire,其实就是setnx key ex xxx nx 但如何确定expire多大呢?没法确定,所以一般在expire之前做一个续期操作,用独立线程做

2. 另一种做法是还是用setnx,如果获取不到,则先get,value是v1, 再取getset,返回v2,如果v1==v2则说明获取到锁了,否则获取失败

 

标签:基于,redis,获取,expire,key,setnx,分布式
From: https://www.cnblogs.com/longbozhan/p/18066459

相关文章

  • 基于I2C电容触摸屏制作多功能触摸板的构思
    使用I2C触摸屏作为触摸传感器,由于触摸屏一般都是透明的玻璃材质,所以底部可以使用亚克力板雕刻图案,底下采用LED补光,另外可以选用黑色的亚克力板。1.模式1:笔记本触摸板模式该模式下模拟鼠标和键盘,实现滚动条滚动,单指单击映射为鼠标左键单击,双指单击可模拟为鼠标右键单击,双指分别朝......
  • Redis 故障转移、高可用方案,都在这了!
    Redis大家都不陌生,就算是没用过,也都听说过了。作为最广泛使用的KV内存数据库之一,在当今的大流量时代,单机模式略显单薄,免不了要有一些拓展的方案。笔者下文会对各种方案进行介绍,并且给出场景,实现等等概述,还会提到一些新手常见的误区。正文先从基础的拓展方式开始,这样更便于理......
  • golang基于长度解决粘包问题(gnet)
    使用gnet框架处理Socket粘包问题当服务端处理旧业务tcpscoket,旧的业务是NettySocket使用的是2个字节的长度定义数据的大小。官方支持ICodec去处理,但文档不太友好,这里附上使用方法import( "github.com/panjf2000/gnet")typeDTUSocketServerstruct{ *gnet.EventServer......
  • redis自学(15)IO多路复用
     无论是阻塞IO还是非阻塞IO,用户应用在一阶段都需要调用recvfrom来获取数据,差别在于无数据时的处理方案: 如果调用recvfrom时,恰好没有数据,阻塞IO会使进程阻塞,非阻塞IO使CPU空转,都不能充分发挥CPU的作用。 如果调用recvfrom时,恰好有数据,则用户进程可以直接进入第二阶段,读取并......
  • 客户说|从4小时到15分钟,一次分布式数据库的丝滑体验
    文/识货运维总监瞿晟荣识货APP致力于为广大用户提供专业的网购决策指导,为喜欢追求性价比的网购朋友带来及时劲爆的运动、潮流、生活、时尚等网购优惠资讯,产品覆盖国内外主流购物商城。它提供了全球范围内的时尚品牌、潮流单品的信息,帮助用户发现和购买最新、最热、最具性价......
  • redis安装和运维
    一安装1安装redis单例操作系统:debian121.1在线安装#直接安装,开机自启动aptinstallredis-server#检查安装情况systemctlstatusredis-serversystemctlstartredis-server#启动systemctlstopredis-server#停止systemctlrestartredis-server#......
  • ChatGLM-6B模型基于 P-Tuning v2 微调脚本参数解释
    1、地址:https://github.com/THUDM/ChatGLM-6B/blob/main/ptuning/README.md2、参数示例PRE_SEQ_LEN=128LR=2e-2CUDA_VISIBLE_DEVICES=0python3main.py\--do_train\--train_fileAdvertiseGen/train.json\--validation_fileAdvertiseGen/dev.json\......
  • 基于vue+springboot高校宿舍管理系统
    本项目是一款基于springBoot的高校宿舍管理系统。本系统主要功能包含:(1)基本信息管理基本信息分为学生信息和宿舍信息两部分,其功能是负责维护这些信息,对它们进行增删查改等操作。宿舍分配管理(2)根据给定的宿舍信息与学生信息,按照一定的规则自动地给还未分配宿舍的学生分配宿舍,......
  • 10_redis持久化
    redis持久化:如何把内存数据写回磁盘redis持久化有两种方式:RDB(RedisDataBase)和AOF(AppendOnlyFile)RDBRDB持久性是以指定的时间间隔执行数据集的时间点快照。类似于照片记录方式,就是把某一时刻的数据和状态以文件的形式写到磁盘上,也就是快照。这个快照文件称之为RDB文件(dump.rd......
  • Redis数据类型及其常用命令
    一、Redis字符串(String)String是Redis最基本的类型,一个key对应一个value,它是二进制安全的(String可以包含任何数据,如jpg图片或者序列化的对象),一个字符串value最多可以是512MBSETkeyvalue[NX|XX][GET][EXseconds|PXmilliseconds|EXATunix-time-seconds|PXATunix-......