參考:
https://juejin.im/post/6844904150703013901
http://www.itdecent.cn/p/106f0eae07c8
redis key失效通知實現(xiàn)延遲隊列
redis.conf 增加配置
notify-keyspace-events Ex
@Bean
RedisMessageListenerContainer
container(@Qualifier("getConnectionFactory")
RedisConnectionFactory connectionFactory) {
RedisMessageListenerContainer container = new
RedisMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
return container;
}
@Component
public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener {
public RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
super(listenerContainer);
}
@Override
public void onMessage(Message message, byte[] pattern) {
String expiredKey = message.toString();
System.out.println("監(jiān)聽***************************************************");
System.out.println("監(jiān)聽到key:" + expiredKey + "已過期");
System.out.println("監(jiān)聽***************************************************");
}
}
問題:消息通知不能持久化,出現(xiàn)宕機情況,消息丟失
rabbitMq的死信隊列