inflearn logo
강의

Course

Instructor

Real-world! Using Redis

Sorted Set - Sliding Window Rate Limiter(Rate Calculator)

Sliding Window Rate Limiter에 대한 질문

Resolved

378

krails0222

8 asked

1

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

redis nosql cache

Answer 1

0

qu3vipon

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

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

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

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

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

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

0

121

2

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

0

102

1

Streams 삭제 관련 질문

0

123

2

ZSet 다이어그램 질문

0

85

2

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

0

209

2

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

0

108

1

장바구니 구현 관련

0

120

2

레디스 사용관련 질문

0

211

1

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

0

231

2

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

0

246

1

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

0

247

1

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

0

207

1

Sorted Sets에 대해 질문 합니다.

0

233

2

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

2

225

1

ec2 내 Redis 잘못된 host 연결

0

367

1

Stable Cache Invalidation 해결방안

0

468

3

Stale cahe invalidation 예시

0

324

1

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

0

278

1

온라인 상태 표시

0

251

1

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

0

316

2

개인 블로그 공유

0

286

1

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

0

391

2

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

0

566

1

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

0

322

1