Inflearn コミュニティ Q&A
String - Fixed Window Rate Limiter(비율 계산기) 에 질문 드립니다.
解決済みの質問
作成
·
201
0
1.1.1.1:10 으로 key가 만들어 졌을 때, 만료가 11분이 되는건가요?
설명에는 10분에서 11분까지로 알려주시던데
20이라는 요청 제한 수는 프로그램에서 관리하는 수가 되는거죠?
다이어 그림에
expire 1.1.1.1:10 60 / exec 의 의미는 무엇인가요?
redisnosqlcache
回答 1
0
qu3vipon
インストラクター
안녕하세요. 예제 상황에서 사용자의 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분 부터는 해당 캐시값이 더 이상 필요하지 않아서 데이터를 삭제하기 위함입니다.






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