inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! Redis 활용

String - Fixed Window Rate Limiter(비율 계산기)

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

해결된 질문

206

bluebamus

작성한 질문수 84

0

1.1.1.1:10 으로 key가 만들어 졌을 때, 만료가 11분이 되는건가요?

설명에는 10분에서 11분까지로 알려주시던데

20이라는 요청 제한 수는 프로그램에서 관리하는 수가 되는거죠?

다이어 그림에

expire 1.1.1.1:10 60 / exec 의 의미는 무엇인가요?

redis nosql cache

답변 1

0

신동현

안녕하세요. 예제 상황에서 사용자의 IP가 1.1.1.1이라고 가정했을 때, 분 단위의 요청 횟수를 제한하기 위해서 10분에서 11분 사이의 요청 횟수를 1.1.1.1:10 키로 갖는 string 타입의 캐시를 추가하였습니다.

 

20이라는 값은 이미 해당 IP로 10분에서 11분 사이에 20번의 클라이언트 요청이 발생한 것을 의미합니다. (이 부분은 예제에서 0초에 첫 요청이 오는 것처럼 설명이 되어 있어서 헷갈리셨을 것 같네요)

 

만약 서버에서 IP 별로 분당 20회의 요청만 허용하기로 했다면, 21번째 요청부터는 에러를 발생시키면 되고, 아직 20번째 요청이 발생하기 전에는 새로운 요청마다 INCR 명령어를 통해서 값을 1 증가 시켜서 해당 값을 관리하면 됩니다.

 

MULTI부터 EXEC까지는 그 사이에 있는 INCR, EXPIRE 두 개의 명령을 한 번에 적용하기 위해서 transaction을 사용하는 명령어입니다.

 

EXPIRE 1.1.1.1:10 60을 통해서 해당 키를 60초 이후에 만료 시키는 이유는 60초 이후인 11분 부터는 해당 캐시값이 더 이상 필요하지 않아서 데이터를 삭제하기 위함입니다.

 

0

bluebamus

쉽게 이해가 되었습니다 감사합니다.

0

신동현

도움이 되었다니 다행입니다 :)

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

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

Sliding Window Rate Limiter에 대한 질문

1

374

1