Java监听redis缓存过期事件

Java调用redis的Sentinel,实现监听缓存到期事件。已有基础代码:
package com.ule.fenxiao.checkout.web.util;

import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import org.apache.log4j.Logger;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisNode;
import org.springframework.data.redis.connection.RedisSentinelConfiguration;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.listener.ChannelTopic;
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
import org.springframework.data.redis.listener.Topic;

@Configuration
public class FxRedisCheckoutSentinel {
public static Logger logger = Logger.getLogger(FxRedisCheckoutSentinel.class.getName());
@Bean
public RedisSentinelConfiguration redisSentinelConfiguration() {
logger.info("redisSentinelConfiguration start...");
RedisSentinelConfiguration redisConfiguration = new RedisSentinelConfiguration();
redisConfiguration.setMaster("checkoutMaster");
redisConfiguration.addSentinel(new RedisNode("172.25.201.72", 6451));
redisConfiguration.addSentinel(new RedisNode("172.25.201.72", 6452));
redisConfiguration.addSentinel(new RedisNode("172.25.201.73", 6415));
redisConfiguration.addSentinel(new RedisNode("172.25.201.73", 6416));
logger.info("redisSentinelConfiguration end...");
return redisConfiguration;
}

@Bean
public JedisConnectionFactory jedisConnectionFactory() {
    logger.info("jedisConnectionFactory start...");
    JedisConnectionFactory jcf = new JedisConnectionFactory(redisSentinelConfiguration());
    logger.info("测试redis:" + jcf.isRedisSentinelAware());//查看是否启用了sentinelConnection
    logger.info("jedisConnectionFactory end...");
    return jcf;
}

@Bean
public StringRedisTemplate template() {
    logger.info("template start...");
    return new StringRedisTemplate(jedisConnectionFactory());
}

@Bean
public KeyExpirsMessageListener kyeExcExpirsMessageListener() {
    logger.info("kyeExcExpirsMessageListener start...");
    KeyExpirsMessageListener keyListener = new KeyExpirsMessageListener();
    keyListener.setRedisTemplate(template());
    logger.info("kyeExcExpirsMessageListener end...");
    return keyListener;
}

@Bean
public RedisMessageListenerContainer redisMessageListenerContainer() {
    logger.info("redisMessageListenerContainer start...");
    RedisMessageListenerContainer topicContainer = new RedisMessageListenerContainer();
    topicContainer.setConnectionFactory(jedisConnectionFactory());
    ExecutorService executor = Executors.newFixedThreadPool(10);
    topicContainer.setTaskExecutor(executor);
    Set<Topic> topicSet = new HashSet<Topic>();
    topicSet.add(new ChannelTopic("_ktyevent@0_:expired"));
    topicContainer.addMessageListener(kyeExcExpirsMessageListener(), topicSet);
    logger.info("redisMessageListenerContainer end...");
    return topicContainer;
}

}

package com.ule.fenxiao.checkout.web.util;

import org.apache.log4j.Logger;
import org.springframework.data.redis.connection.Message;
import org.springframework.data.redis.connection.MessageListener;
import org.springframework.data.redis.core.RedisTemplate;

public class KeyExpirsMessageListener implements MessageListener{
public static Logger logger = Logger.getLogger(KeyExpirsMessageListener.class.getName());

private RedisTemplate<String, String> redisTemplate;

public void setRedisTemplate(RedisTemplate<String, String> redisTemplate) {
    this.redisTemplate = redisTemplate;
}

@Override
public void onMessage(Message message, byte[] pattern) {
    byte[] body = message.getBody();
    byte[] itemChannel = message.getChannel();
    String itemValue = (String) redisTemplate.getValueSerializer().deserialize(body);
    String itemChannelNew = (String) redisTemplate.getValueSerializer().deserialize(itemChannel);
    logger.info("KeyExpirsMessageListener onMessage:channel["+itemChannelNew+"],message["+itemValue+"]");
}

}

项目启动的时候,在listener中加载
public void redisSentinel() {
log.info("redis缓存到期控制开始:");
new AnnotationConfigApplicationContext(FxRedisCheckoutSentinel.class);
}

启动日志输出redis缓存到期控制开始后就不在运行,项目启动失败,没有任何错误提示,有没有人了解这个的,帮忙指点指点

首先肯定是看日志的,确定下日志级别是不是开高了,降低日志级别看看异常入职会不会出来,没有日志查不到具体原因的,先要定位问题在哪才能解决