본문 바로가기

Redis4

Docker 로컬 Redis cluster 개발 환경 구성 로컬에서 직접 Redis docker image로 cluster를 구성하는 방법은 복잡하지만,grokzen/redis-cluster 이미지를 사용하면 따로 네트워크 설정이나 스크립트를 만들 필요없이 쉽게 Redis cluster 개발 환경을 구성할 수 있다. 다만 아쉬운 점은 최신 Redis 7.4 버전은 정식으로 지원하지 않는다는 점과현재 기준으로 Redis 7.2.5 버전이 지원하는 가장 최신의 버전인데 7.2.x 버전은 오류가 나서 정상적으로 실행되지 않는다.(관련 이슈) 그래서 실제로 사용할 수 있는 가장 최신 Redis 버전은 사실상 7.0.15 버전이다. 3 master nodes + 3 slave nodes먼저 아래와 같은 3개의 1 master - 1 slave shard로 구성된 Redi.. 2024. 11. 8.
[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 LimitAPI 사용이나 특정 기능에 있어서 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.