3.0.1
org.projectlombok
lombok
cn.hutool
hutool-all
5.3.4
Redis配置文件
package com.lizba.config;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
/**
-
-
Redis简单配置文件
-
@Author: Liziba
-
@Date: 2021/7/11 11:17
*/
@Configuration
public class RedisConfig extends CachingConfigurerSupport {
protected static final Logger logger = LoggerFactory.getLogger(RedisConfig.class);
@Value(“${spring.redis.host}”)
private String host;
@Value(“${spring.redis.port}”)
private int port;
@Value(“${spring.redis.jedis.pool.max-active}”)
private int maxTotal;
@Value(“${spring.redis.jedis.pool.max-idle}”)
private int maxIdle;
@Value(“${spring.redis.jedis.pool.min-idle}”)
private int minIdle;
@Value(“${spring.redis.password}”)
private String password;
@Value(“${spring.redis.timeout}”)
private int timeout;
@Bean
public JedisPool redisPoolFactory() {
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(maxTotal);
jedisPoolConfig.setMaxIdle(maxIdle);
jedisPoolConfig.setMinIdle(minIdle);
JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port, timeout, null);
logger.info(“JedisPool注入成功!!”);
logger.info(“redis地址:” + host + “:” + port);
return jedisPool;
}
}
application.yml配置文件
server:
port: 18080
spring:
redis:
database: 0
host: 127.0.0.1
port: 6379
timeout: 10000
password:
jedis:
pool:
max-active: 20
max-idle: 20
min-idle: 0
获取锁与释放锁代码
package com.lizba.utill;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.params.SetParams;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
/**
-
-
Redis分布式锁简单工具类
-
@Author: Liziba
-
@Date: 2021/7/11 11:42
*/
@Service
public class RedisLockUtil {
private static Logger logger = LoggerFactory.getLogger(RedisLockUtil.class);
/**
- 锁键 -> key
*/
private final String LOCK_KEY = “lock_key”;
/**
- 锁过期时间 -> TTL
*/
private Long millisecondsToExpire = 10000L;
/**
- 获取锁超时时间 -> get lock timeout for return
*/
private Long timeout = 300L;
/**
- LU