全网最简单的SpringBoo整合redis,监控过期key
前言
在网上翻了好久,终于功夫不负有心人,终于让我整出来了,在这里总结一下。SpringBoot项目下,整合redis并对过期key做过期处理。
场景
我负责一个商城系统,发布的优惠券是有有效期的,有效期失效时,优惠券就会变为过期状态,这就需要一个合理的监控者去监控他的有效期是否到了临界值,一旦超过有效期,优惠券便会失效。
我首先想到的是,在数据库做监控,根据资料搜索到可用数据库中的事件去做定时检测,是可以是实现的,但是优惠券的过期时间是精确到秒的,这样数据库做事件监控的话,无疑对数据库来说,会造成很大的压力。所以我果断放弃这种方法。再次查阅资料,便想到了redis监控过期key的方法,用优惠券的id做key,这样就可以很好的解决优惠券过期的问题了。那么废话少说,直接上操作:
1.首先在 pom.xml 文件中引入redis的相关依赖
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
2.然后在 yml 文件中进行配置
redis:
#数据库索引
database: 0
host: 127.0.0.1
port: 6379
password: 123456
jedis:
pool:
#最大连接数
max-active: 15
#最大阻塞等待时间(负数表示没限制)
max-wait: -1
#最大空闲
max-idle: 15
#最小空闲
min-idle: 0
#连接超时时间
timeout: 10000
3.使用redis少不了配置类,下面的配置类可以直接复制使用
package cn.xxx.com.common.redis;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
/**
* @author Naruto
* @date 2024/1/20 19:03
* @description redis配置类
*/
@Configuration
public class RedisConfiguration {
@Autowired
private RedisConnectionFactory redisConnectionFactory;
@Bean
public RedisMessageListenerContainer redisMessageListenerContainer() {
RedisMessageListenerContainer redisMessageListenerContainer = new RedisMessageListenerContainer();
redisMessageListenerContainer.setConnectionFactory(redisConnectionFactory);
return redisMessageListenerContainer;
}
@Bean