Martian 框架发布 3.0.39 版本,更加灵活的 Redis 分布式锁

栏目:技术教程 发布时间 2020-10-16 人气 

来源:https://www.codercto.com/a/119350.html

TAG:无

侵权:admin@heimacode.com

免责声明:本文图片引用自网络,如有侵权请联系我们予以删除

黑码网发布此文仅为传递信息,不代表黑码网认同其观点。

简介:内容简介:正如标题所说,此次更新主要是优化了Redis分布锁的灵活性。 在要加锁的方法上添加RedisLock注解 @RedisLock(key = "自己定义一个key", maxWait = 3000, retry = true, retryRate = 100, timeOut =... 本文转载自:https://www.osch...

正如标题所说,此次更新主要是优化了 Redis 分布锁的灵活性。

在要加锁的方法上添加RedisLock注解

@RedisLock(key = "自己定义一个key", maxWait = 3000,
            retry = true, retryRate = 100, timeOut = 1000)
public int insert(){
  return 1;
}

这个锁会在事务开启之前获取,在事务提交以后解锁,并且只对MarsBean有效,对API和DAO无效

RedisLock注解的参数解释

  • key: 唯一标识,保证全局唯一
  • retry: 如果获取锁失败,是否重试(true 是,false 否),只有设置为true,下面的几个属性才生效 | 默认为 false
  • retryRate: 重试频率(多少毫秒重试一次)| 默认100毫秒
  • maxWait: 最大等待时间(重试多少毫秒以后,就放弃等待) | 默认3000毫秒
  • timeOut: 失效时间(多少毫秒后,自动解锁) | 默认10000毫秒

如果你不需要锁住整个方法,只需要锁一小段代码,那么可以用下面的方式

在MarsBean里面注入MarsRedisLock对象

@MarsBean("testService")
public class TestService {

    @MarsWrite("marsRedisLock")
    private MarsRedisLock marsRedisLock;

}

加锁

LockModel lockModel = new LockModel();
ockModel.setKey("设置一个key,不同业务之间唯一,保证每次请求都是一样的key");
ockModel.setValue("设置一个唯一的value,每次请求都是唯一的");
// 失效时间
ockModel.setTimeOut(10000);
// 重试频率(每隔几毫秒重试一次)
ockModel.setRetryRate(300);
// 没获取到锁,是否重试
lockModel.setRetry(true);
// 最大重试时间(重试多久没成功,就直接放弃)
ockModel.setMaxWait(5000);

Boolean haslock = marsRedisLock.lock(lockModel);
if(haslock){
    执行加锁后才能执行的代码
}

解锁

marsRedisLock.unlock(lockModel.getKey(), lockModel.getValue());

Martian框架官网

http://mars-framework.com/ 


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

关注码农网公众号

关注我们,获取更多IT资讯^_^


为你推荐:

  • 分布式锁原理——redis分布式锁,zookeeper分布式锁
  • Redis分布式锁
  • Redis应用-分布式锁
  • redisLock redis分布式锁
  • Redis 分布式锁--PHP

相关软件推荐:

  • 分布式lua开发框架 distri.lua
  • 高性能分布式 RPC 框架 commonrpc
  • 分布式对象图 NetworkObjects
  • 分布式消息推送服务 GoPush
  • 分布式流控系统 dimit

查看所有标签

派出所 几天 仪征 戴上 盟友 上架 开启 小树苗 图拉 抢答 美日 rx5700 模具设计 想着 传染病 负电荷 感动 太渊 驯养 大魔王 号牌 FAST 严肃 离岛 块钱 关爱 借款 耦合 蟑螂 肖像画 能不 广益 当值 水下 解决办法 教室 吃螃蟹 背光源 聚散 十三号 福尔 蘑菇 剑魔 预压 同期 他们的 Parallels_Desktop_15 收银 让人 布阵 愤怒 研究院 视频处理 真好 成团 人大代表 加大 姜子牙 下周 返利 以后会 耳朵 少不了 发端 领结 设计软件 涡街流量计 喝杯 冷静 有影响 用在 明火 只怕有心人 虚拟光驱 达摩 流动站 铁管 大锅 墨斗 华晨宝马 红外测温仪 层析 简化了 派驻 摇杆 能让 雄狮 加持 衡量 去除 南充 河西 化妆品 呼气 现场 航科 电影摄影机 全球中文 三利 铸造
资源来源网络,若未解决请查看原文

本文地址:https://www.heimacode.com/article/60461.html