Redis key using the failure detection service to process, e.g., the timing to cancel the order 30 minutes.
1, redis.conf configuration file to add configuration
notify-keyspace-events Ex
2, the following code
1, start the class to add annotations
@ComponentScan
2, add the Container configuration
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.core.RedisTemplate; import org.springframework.data.redis.listener.RedisMessageListenerContainer; import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; @Configuration public class RedisListenerConfig { @Autowired private RedisTemplate redisTemplate; /** * 处理乱码 * * @return */ @Bean public RedisTemplate redisTemplateInit() { // key序列化 redisTemplate.setKeySerializer(new StringRedisSerializer()); //val实例化 redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer()); return redisTemplate; } @Bean RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) { RedisMessageListenerContainer container = new RedisMessageListenerContainer(); container.setConnectionFactory(connectionFactory); return container; } }
3, failure to monitor key
import org.springframework.data.redis.connection.Message; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.listener.KeyExpirationEventMessageListener; import org.springframework.data.redis.listener.RedisMessageListenerContainer; import org.springframework.stereotype.Component; import javax.annotation.Resource; @Component public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener { @Resource private RedisTemplate redisTemplate; publicRedisKeyExpirationListener (RedisMessageListenerContainer listenerContainer) { Super (listenerContainer); } / ** * redis failure data for event data processing * * @param Message * @param pattern * / @Override public void the onMessage (the Message Message, byte [] pattern) { String expireKey = new new String (message.getBody ()); System.out.println ( "body = [" + expireKey + "]" ); } }