본문 바로가기
DB/Redis

[Redis] 많은 키를 삭제할 때는 UNLINK

by devson 2023. 2. 12.

Redis의 key를 삭제할 때는 주로 DEL 커맨드를 사용한다.

DEL key [key ...]

 

Redis 1.0.0 부터 사용되던 커맨드이고 SET과 더불어 Redis 예제에서 자주 사용되는 예제이기 때문에

Redis를 사용한 서버 애플리케이션 개발 시 DEL 커맨드가 자주 사용된다.

 

 

DEL 커맨드 외에도 Redis는 4.0.0 버전부터 UNLINK 라는 커맨드가 있는데 DEL과 동일하게 특정 key를 삭제하는 기능을 수행한다.

UNLINK 커맨드의 차이점은

  • 여러 key를 삭제할 때 DEL 커맨드의 경우 O(N) (n은 삭제할 key의 수) 의 시간 복잡도를 갖는데에 반해,
    UNLINK 커맨드는 삭제할 key의 수에 상관없이 O(1)의 시간 복잡도를 갖는다.
  • UNLINK 라는 이름처럼 실제로 key를 바로 삭제하진 않으며, 해당 key를 keyspace에서 제거(unlink)할 뿐이다.
    실제 메모리 상의 삭제는 다른 쓰레드에서 비동기로 이뤄진다.

 

애초에 Redis가 key-value store 이기 때문에 삭제할 key의 사이즈가 작고 몇 건 안된다면 DEL 커맨드를 사용하여도 상관없겠지만,

많은 양의 key를 bulk로 삭제해야한다면 UNLINK 커맨드 사용을 고려할 수 있겠다.

 

'DB > Redis' 카테고리의 다른 글

Redis를 활용한 다양한 시스템 설계  (5) 2022.10.02
Sorted Set vs Top-K for Real-time Ranking System  (0) 2022.05.23

댓글