[Spring Boot] Redis Key Expired Event
Redis에서 TTL 설정 된 key에 대해 expire 될 때 이벤트를 받을 필요가 생겨 리서치를 진행 했다. Reids 버전 언제부터인지는 모르겠지만 아래 redis.conf를 보니 key expired 이벤트를 받을 수 있도록 되어 있었다. 출처 : https://github.com/redis/redis/blob/unstable/redis.conf expired 이벤트는 disabled가 default라 아래처럼 redis node에서 따로 설정을 해 줘야 한다. $> config set notify-keyspace-events Ex note) 맨 뒤 Ex는 위 redis.conf에 있는 E : Keyevent events / x : Expired events 두 개를 사용하겠다는 의미. Redis 서버에 셋팅 후 Spring Boot에서 이벤트를 받아 보기 위해 코드를 작성했는데 두 가지가 가능 했다. 첫째로 Redis의 KeyExpirationEventMessageListener 와 Spring Boot EventListener 를 활용하는 방법과 두번째는 그냥 Redis의 MessageListener를 구현하는 방법이다. 1) Spring EventListner RedisKeyExpiredEvent를 받는 리스너를 만들어 준다. @Component public class MyRedisKyeExpiredSpringListener { @EventListener public void expiredKey ( RedisKeyExpiredEvent event ) { System . out . println ( "=========== spring listener ===========" ); System . out . println ( "event : " + event ); System . out . println ( "e...