Spring Boot中Redisson的使用


1、pom.xml中加入依赖

        <dependency>
            <groupId>org.redisson</groupId>
            <artifactId>redisson</artifactId>
            <version>3.5.0</version>
        </dependency>

2、配置

package com.huixiaoer.base.common.config;

import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

@Data
@Configuration
@ConfigurationProperties(prefix = "spring.redis")
@PropertySource("classpath:application.yml")
public class RedissonConfig {

    private String host;
    private String port;
    private String password;
    private int database;

    @Bean
    public RedissonClient getRedisson(){
        Config config = new Config();
        config.useSingleServer().setAddress("redis://" + host + ":" + port).setDatabase(database);
        if(StringUtils.isNotBlank(password)){
            config.useSingleServer().setPassword(password);
        }
        return Redisson.create(config);
    }
}
spring:
  redis:
    jedis:
      pool:
        max-active: 8
        min-idle: 2
        max-idle: 8
        max-wait: -1
    database: 0
    host: 47.95.241.158
    port: 9379
    password: y82y^35y5oi_xnHFa
    timeout: 5000

3、在service中的使用

@Service
@Slf4j
public class AntOrderBusinessServiceImpl extends AbstractOrderService {

    @Autowired
    private RedissonClient redissonClient;

    @Override
    public CommonResult timeOut(OrderBusiness orderBusiness){
        String orderId  = orderBusiness.getOrderId();
        RLock rwlock = redissonClient.getReadWriteLock("TIMEOUTLOCK"+orderId).writeLock();
        try {
            rwlock.lock();
            //......
        }catch (Exception e){
            log.error("timeout失败:{}|{}",orderId,ExceptionUtils.getFullStackTrace(e));
        }finally {
            rwlock.unlock();
        }

        return null;
    }
 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM