Redisson看门狗机制你了解多少

前言

谈到Redisson就不得不说Redis了,一想到Redis就不得不想到并发编程锁机制,一想到锁机制那么就不能不考虑一个很头疼的问题,如何保证原子性的问题,高QPS请求量的系统对每次执行数据的原子性由为的关键,保证不了原子性就会导致一系列重复提交的操作,重复的数据导致在某些逻辑运算的时候发生误差;

ACID的特性首先是原子性,原子性永远是放在首位的,所以我们首先要解决的就是接口请求的原子性;

Redis分布式锁的原子性

Redis分布式锁到底能不能保证原子性,这是面试会被经常问到的一个问题。大部分的人回答都是不能保证原子性,但是其中的所以然大家都很模糊,我也一样,但为什么还在用Redis的分布式锁,如何让它可以具有原子性呢?

Redis分布式锁实现

SET NX相信大家都知道是redis实现加锁的一个命令,这里用Jedis封装的Api接口去对redis进行使用,Jedis是Redis官方推荐的面向Java操作Redis的客户段,RedisTemplate是SpringDataRedis中对Redis的封装客户端,方便的就是可以搭配Spring框架使用,如Spring cache

先上代码吧,这是我曾经写的一段关于redis分布式锁的代码,主要用于重复提交的判断,这里我用了jedis的setnx方法,加锁后的返回不为null && 值等于1的时候表示加锁成功,并且调用expire方法对key进行赋过期时间,业务处理完成后进行锁的释放,防止死锁,这里是常规的redis的加锁方式;

java复制代码
/**
 * 分布式事务锁-判断是否请求过
 * 
 * @param key 键
 * @param time 过期时间
 * @return true:存在
 */
@HystrixCommand(fallbackMethod = "isExistFail")
public boolean isExist(String key, int time) {
    Jedis jedis = null;
    try {
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值