
简单定时任务解决方案:使用redis的keyspace notifications(键失效后通知事件)
需要注意此功能是在redis 2.8版本以后推出的,所以呢你服务器上的reids最少要是2.8版本以上;
1.开启redis key过期提醒
修改redis相关事件配置.找到redis配置文件redis.conf,查看"notify-keyspace-events"的配置项,如果没有,添加"notify-keyspace-events Ex",如果有值,添加Ex,相关参数说明如下:
K:keyspace事件,事件以__keyspace@__为前缀进行发布;
E:keyevent事件,事件以__keyevent@__为前缀进行发布;
g:一般性的,非特定类型的命令,比如del,expire,rename等;
$:字符串特定命令;
l:列表特定命令;
s:集合特定命令;
h:哈希特定命令;
z:有序集合特定命令;
x:过期事件,当某个键过期并删除时会产生该事件;
e:驱逐事件,当某个键因maxmemore策略而被删除时,产生该事件;
A:g$lshzxe的别名,所以呢"AKE"意味着所有事件.
org.springframework.boot
spring-boot-starter-data-redis
@Configuration
public class RedisTimerConfiguration {
private Logger logger = LoggerFactory.getLogger(RedisTimerConfiguration.class);
private RedisConnectionFactory redisConnectionFactory;
public RedisMessageListenerContainer redisMessageListenerContainer() {
RedisMessageListenerContainer redisMessageListenerContainer = new RedisMessageListenerContainer();
return redisMessageListenerContainer;
}
}
@Component
public class RedisTask extends KeyExpirationEventMessageListener {
##################部分内容隐藏限制##################
浏览当前隐藏内容需要支付【0.00RNB】