日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

使用Redission實現分布式鎖

作者:自由_free 更新時間: 2022-05-11 編程語言

1.使用Redission實現分布式鎖

  • 添加pom依賴
<dependency>
            <groupId>org.redisson</groupId>
            <artifactId>redisson</artifactId>
            <version>3.8.2</version>
        </dependency>
  • 在項目中將需要的參數配置到配置文件中

在這里插入圖片描述

import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @ClassName RedissonConfig
 * @Description TODO
 * @Author LZJ
 * @Date 2021/6/17 11:43
 * @Version 1.0
 */
@Configuration
public class RedissonConfig {

    @Value("${spring.redis.host}")
    private String host;

    @Value("${spring.redis.port}")
    private String port;

    @Bean
    public RedissonClient getClient() {
        Config config = new Config();
        config.useSingleServer().setAddress("redis://"+host+":"+port);
        RedissonClient redisson = Redisson.create(config);
        return redisson;
    }

}
  • 在需要加鎖的函數中添加代碼(registerUser(message)為主函數),最后在finally中釋放鎖
                      try {
                                    boolean tryLock = lock.tryLock(2, 8, TimeUnit.SECONDS);
                                    if (tryLock) {
                                        registerUser(message);
                                    }

                                } catch (Exception e) {
                                    log.error("redission  error e:{} ", e);
                                    e.printStackTrace();
                                } finally {
                                    lock.unlock();
                                }
                            }

原文鏈接:https://blog.csdn.net/weixin_49194846/article/details/118087301

欄目分類
最近更新