1 redis.conf modificar el fichero de configuración:
Eventos K KEYSPACE, publicado con espacio de claves prefijo @事件
eventos E KeyEvent, publicada con KeyEvent prefijo @
g comandos genérico (no - Tipo específico) como SUPR, expirar, renombrar ...
comandos $ cadena
comandos lista L
s comandos Set de
comandos h Hash
Z ordenado set comandos
x sucesos caducados (eventos generados cada vez que una clave expira)
e Evicted eventos (eventos generados cuando una tecla es desalojado por maxmemory)
un alias de g $ lshzxe, por lo que los “AKE” cadena se refiere a todos los eventos.
redis.conf的默认的配置是: notificar -keyspace- eventos ""
我们需要改为: notificar-keyspace- Eventos Ex
es decir, por encima del evento clave correspondiente caducado. Juega esta modificación reiniciar las Redis
2 cliente para escuchar evento Redis caducada de:
@Configuration
público clase RedisListenerConfig {
@Bean
RedisMessageListenerContainer recipiente (RedisConnectionFactory ConnectionFactory) {
RedisMessageListenerContainer contenedor = nuevo RedisMessageListenerContainer ();
container.setConnectionFactory (ConnectionFactory);
volver recipiente;
}
}
3. Escribir un oyente
@ SLF4J
@Component
pública clase RedisKeyExpirationListener extiende KeyExpirationEventMessageListener {
público RedisKeyExpirationListener (RedisMessageListenerContainer listenerContainer) {
super (listenerContainer);
}
@ Override
pública vacío onMessage (mensaje Mensaje, byte [] patrón) {
Cadena expiredKey = message.toString ();
log.info ( " expiredKey ========= " + expiredKey);
}
4. El método de las tablas de consultas acaba de añadir dos ID diferente, un 30, un 27s.
redisUtil. conjunto ( " UserId " + usuario. obtener ( 0 ) .getId (), el usuario. obtener ( 0 ) .getId (), 30 );
redisUtil. conjunto ( " UserInfoId " + userInfo. obtener ( 0 ) .getId (), userInfo. obtener ( 0 ) .getId (), 27 );
salida de la consola:
Tenga en cuenta que:
caducado escuchar los mensajes a cambio es que el valor de la tecla expiró, no hay valor de retorno de