ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 数据库 >> 其他数据库 >> spring boot 利用redisson实现redis的分布式锁

spring boot 利用redisson实现redis的分布式锁(1/4)

来源:网络整理     时间:2017-05-23     关键词:

本篇文章主要介绍了" spring boot 利用redisson实现redis的分布式锁",主要涉及到方面的内容,对于其他数据库感兴趣的同学可以参考一下: 利用redis实现分布式锁,网上搜索的大部分是使用java jedis实现的。redis官方推荐的分布式锁实现为redisson http://ifeve.co...

利用redis实现分布式锁,网上搜索的大部分是使用java jedis实现的。

redis官方推荐的分布式锁实现为redisson http://ifeve.com/redis-lock/

以下为spring boot实现分布式锁的步骤

项目pom中需要添加官方依赖 我是1.8JDK固为

<!-- redisson -->
<dependency>
	<groupId>org.redisson</groupId>
	<artifactId>redisson</artifactId>
	<version>3.4.2</version>
</dependency>

 定义一个分布式锁的回调类

package com.example.demo.redis2;

/**
 * 分布式锁回调接口
 *
 * @author lk
 */
public interface DistributedLockCallback<T> {

    /**
     * 调用者必须在此方法中实现需要加分布式锁的业务逻辑
     *
     * @return
     */
    public T process();

    /**
     * 得到分布式锁名称
     *
     * @return
     */
    public String getLockName();
}

 分布式锁操作模板

package com.example.demo.redis2;
import java.util.concurrent.TimeUnit;

/**
 * 分布式锁操作模板
 *
 * @author lk
 */
public interface DistributedLockTemplate {
    /**
     * 使用分布式锁,使用锁默认超时时间。
     *
     * @param callback
     * @return
     */
    public <T> T lock(DistributedLockCallback<T> callback);

    /**
     * 使用分布式锁。自定义锁的超时时间
     *
     * @param callback
     * @param leaseTime 锁超时时间。超时后自动释放锁。
     * @param timeUnit
     * @return
     */
    public <T> T lock(DistributedLockCallback<T> callback, long leaseTime, TimeUnit timeUnit);
}

使用redisson最简单的Single instance mode实现分布式锁模板接口

上一篇 高可用PXC 下一篇linux下安装db2

相关图片

相关文章