본문 바로가기

DB/Redis3

[Redis] 많은 키를 삭제할 때는 UNLINK 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를.. 2023. 2. 12.
Redis를 활용한 다양한 시스템 설계 Redis는 in-memory key-value storage로 주로 DB 레이어의 부하 분산과 빠른 응답을 위한 캐싱 레이어로 쓰인다. 하지만 Redis는 value로 다양한 데이터 타입을 지원하고 있으며, 다양한 모듈과 이 모듈들을 포함한 Redis Stack 또한 제공하고있다. Redis에서 제공하는 데이터 타입들과 모듈을 활용하면 큰 노력 없이 다양한 종류의 시스템을 설계할 수 있다. 이번 포스팅에서는 Redis를 활용하여 다양한 시스템을 설계하는 방법에 대해 알아보도록 하겠다. Rate Limit API 사용이나 특정 기능에 있어서 Rate Limit를 해야하는 경우가 종종 있다. - 하루에 한 번만 참여 가능한 이벤트 - 인증 문자를 받고나서 다음 인증 문자를 받으려면 1분의 대기시간을 주.. 2022. 10. 2.
Sorted Set vs Top-K for Real-time Ranking System 실시간 랭킹 시스템을 구축할 때 Redis의 Sorted Set(ZSET)을 활용하는 방식은 많이 알려진 방식이다. Redis: Real-Time Leaderboard & Ranking Solutions AWS: Build a real-time gaming leaderboard with Amazon ElastiCache for Redis Sorted Set은 자료 구조 자체가 단순하고 지원되는 기능이 많으며 무엇보다 사용이 어렵지 않기 때문에 쉽게 랭킹 시스템을 구축할 수 있다. 또한 Redis는 시간이 지나면서 여러 기능과 모듈들이 생겼고 그러한 모듈 중 하나인 RedisBloom 모듈을 통해 몇 가지 확률적 자료구조를 지원하는데, RedisBloom 모듈은 Sorted Set과 마찬가지로 실시간 랭킹.. 2022. 5. 23.