keyspace notification으로 key 삭제 및 만료 이벤트 모니터링
Redis유지보수명령어
CONFIG GET notify-keyspace-events
# E: keyevent channel, x: expire events, g: generic commands (DEL, EXPIRE, RENAME):
CONFIG SET notify-keyspace-events Exg
# Listen to expire and del events in db 0:
redis-cli -h redis1 -p 6379 --csv PSUBSCRIBE '__keyevent@0__:expired' '__keyevent@0__:del'
# Turn off:
CONFIG SET notify-keyspace-events ""하는 일
key에 대한 이벤트(expire, del, set 등)를 pub/sub 채널로 발행하여 어떤 key가 언제 삭제 또는 만료되었는지 실시간으로 볼 수 있게 한다.
사용 시점
key가 '저절로 사라질' 때 어떤 명령이나 만료가 제거하는지 증명하거나, 만료 이벤트에 의존하는 워크플로(세션 종료)에 공급하기 위해.
주의
이벤트는 CPU와 네트워크 부하를 추가한다. 'A'(모든 클래스)는 바쁜 시스템에서 특히 비용이 크므로 필요한 클래스만 활성화하고 이후 끈다. pub/sub는 fire-and-forget이다: 연결되지 않은 구독자는 이벤트를 놓치며 아무것도 저장되지 않는다. expired 이벤트는 TTL 시점이 아니라 key가 실제로 삭제될 때(접근 시 또는 백그라운드 expire cycle에 의해) 생성된다.