Redis

NestJS에서 Redis를 활용한 최근 검색어 기능 구현

Dev갱이 2024. 9. 10. 18:23
728x90

 

최근 검색어 기능

  • 최근 검색어는 10개를 저장할 수 있고 최근 10개의 검색어를 가져온다
  • 검색어가 10개를 초과하면 가장 오래된 검색어를 삭제하고 저장한다.

Redis의 Sorted Set 자료구조 사용

일반적인 Set 자료구조는 요소들의 순서가 보장되지 않고 중복을 허용하지 않는다는 특성을 가지는데 반해 Sorted Set 자료구조는 중복을 허용하지는 않고 개별 요소들이 특정한 기준에 따라 정렬되어있는 자료 구조이다.

최신 검색어 저장 기능에 Sorted Set을 사용

  • 중복을 허용하지 않기 때문에 중복된 검색어는 저장 하지 않는다.
  • 특정한 조건 (검색된 시간)에 따라 정렬되어서 저장할 수 있기 때문에 제일 오래된 검색어부터 삭제 할 수 있다.

 

  • zdd는 sort set 자료구조에 저장하는 메서드
  • zcard는 sort set 자료구조에 key값으로 조회 되는 갯수
  • 해당 갯수가 10개가 넘어 간다면 zremrangebyrank 메서드를 활용하여 제일 오래된 검색어를 삭제 한다

 

 

  • zrevrange 메서드를 사용하여 key값에 해당하는 최근 검색어 10개만 가져온다.

 

  • 최근 검색어 전체 삭제

 

Reference

- ( https://dgjinsu.tistory.com/35 )

- ( https://bugoverdose.github.io/development/redis-zset-basics/ )

728x90