9월, 2022의 게시물 표시

[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...

Mac IntelliJ 2022.02 Serializable class without serialVersionUID 옵션 경로

Serializable 클래스에 serialVerionUID 자동 생성 하려면  Serializable class without serialVersionUID 옵션을 on 해야 한다. 구글링 해서 찾은 경로는 아래 인데 IntelliJ 2022.02는 여기에 해당 옵션이 없었다. Preference -> editor -> inspections -> Java -> Serializable issues cmd + shift + a 에도 나오지 않고 한참을 찾아 헤멨는데 아래 경로로 바뀐 듯 하다. Preference -> editor -> inspections -> JVM language