Sliding Window Rate Limiter에 대한 질문
예시 그림을 보면 새로운 요청을 add할때 ZADD 1.1.1.1 1693494130 1693494130 형식으로 add를 하던데 이러면 혹시 동일한 timestamp에 여러번 요청이 올 경우는 어떻게 구분하나요? 가령 1693494130에 3번의 요청이 동시에 발생한다면 스코어는 1693494130로 하고 item을 1693494130_0이런식으로 index를 추가해야할 것 같아서요
답변 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





