inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! Redis 활용

Sorted Set - Sliding Window Rate Limiter(비율 계산기)

Sliding Window Rate Limiter에 대한 질문

해결된 질문

374

낌상

작성한 질문수 8

1

예시 그림을 보면 새로운 요청을 add할때 ZADD 1.1.1.1 1693494130 1693494130 형식으로 add를 하던데 이러면 혹시 동일한 timestamp에 여러번 요청이 올 경우는 어떻게 구분하나요? 가령 1693494130에 3번의 요청이 동시에 발생한다면 스코어는 1693494130로 하고 item을 1693494130_0이런식으로 index를 추가해야할 것 같아서요

redis nosql cache

답변 1

0

신동현

안녕하세요! 해당 부분은 sliding window의 특성을 쉽게 설명하기 위해서 지적해주신 부분처럼 초당 중복요청을 무시하게 설계되어 있습니다.

가장 쉽게 중복 문제를 개선하는 방법은 unix timestamp를 microsecond 단위로 생성하는 방법이 있을 것 같습니다. 초당 중복 요청에 비해 microsecond 단위의 중복 요청은 상대적으로 적을 것이기 때문입니다.

그런데 microsecond에서도 중복이 발생할 수 있기 때문에 추가적으로 member 이름 뒤에 임의의 값을 추가하여 microsecond 단위의 중복까지도 제거할 수 있을 것 같습니다.

제안해주신 방법처럼 sequential한 index를 추가하는 것도 좋은 방법이지만, index를 카운팅하기 위한 별도의 작업이 필요하기 때문에 간단하게 random value를 추가하여 좀 더 간단하게 개선 가능할 것 같습니다.

좋은 질문 주셔서 감사합니다!

Stale Cahe Invalidation 방법에 대한 질문 요청 드립니다

0

116

2

pipeline 다이어그램 m/s 오타 제보

0

100

1

Streams 삭제 관련 질문

0

121

2

ZSet 다이어그램 질문

0

84

2

안녕하세요 Pub/sub과 분산 락에 대해 질문이 있습니다.

0

206

2

분산 락에 대해 질문 있습니다.

0

103

1

장바구니 구현 관련

0

119

2

레디스 사용관련 질문

0

205

1

Rate Limiter 예제에 대해 질문있습니다!

0

226

2

Bitmap - User Online Status(온라인 상태 표시)에 질문 드립니다.

0

239

1

Hash - Login Session(로그인 세션)에 대해 질문 드립니다.

0

244

1

String - Fixed Window Rate Limiter(비율 계산기) 에 질문 드립니다.

0

206

1

Sorted Sets에 대해 질문 합니다.

0

230

2

데이터 타입 활용 - 온라인 상태 표시 [Bitmap] 관련 질문

2

223

1

ec2 내 Redis 잘못된 host 연결

0

364

1

Stable Cache Invalidation 해결방안

0

467

3

Stale cahe invalidation 예시

0

321

1

블룸필터-중복이벤트 제거 예시

0

276

1

온라인 상태 표시

0

248

1

해시-로그인세션 꼭 해시를 쓰는 이유가 무엇인가요?

0

309

2

개인 블로그 공유

0

283

1

subscriber, publisher 두개 같은 포트로 띄울 수 있나요?

0

388

2

외부 클라이언트에서 도커 redis-stack-server 접속 시, 블룸필터 명령어가 없다고 합니다.

0

559

1

트랜잭션(multi) 질문입니다.

0

319

1