일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- f45
- redis
- 다섯수치요약
- 인덱스 순서
- 데이터베이스
- 복합인덱스
- Sharding
- System Design
- 데이터베이스 인덱스
- 레디스
- 글또
- knn분류기
- DB 파티셔닝
- Retry
- 인덱스 추가
- axis interceptor
- 통계학개론
- 가상면접 사례로 배우는 대규모 시스템 설계
- 샤딩
- LRU
- 데이터베이스 파티셔닝
- k-Nearest Neighbors
- R Studio
- 머신러닝
- 파티셔닝
- 상자그림
- 쿼리 실행계획
- partitioning
- 오버라이딩
- axios
- Today
- Total
목록redis (2)
haileyjpark
책에 나오는 키워드로 미국 IT 기업에서 실제로 출제되는 질문 사례를 탐구해보는 스터디를 시작해서, 해당 스터디에서 다룰 내용을 블로그로 작성해보려고 합니다. 이번 글에서는 캐시(cache)를 활용한 성능 최적화에 대한 면접 사례를 찾아보았습니다. LRU 캐시 설계질문LRU(Least Recently Used) 캐시를 설계하고 구현하는 방법을 설명해 주세요. 답변LRU 캐시는 가장 오래 사용되지 않은 데이터를 제거하는 캐싱 기법입니다.이를 구현하는 방법으로는 해시맵과 이중 연결 리스트를 조합하는 방식이 일반적입니다.해시맵을 이용하면 데이터의 조회 속도를 O(1)로 유지할 수 있고, 이중 연결 리스트를 사용하면 데이터의 삽입 및 삭제가 O(1)로 수행됩니다. 예를 들어, 온라인 쇼핑몰에서 고객이 최근 본..

최근 Redis의 SCAN 명령어에 대해 알아보고 scanStream을 적용해보았는데, 새롭게 알게 된 것이라 정리해보고자 한다. * 글에 사용된 예시 코드는 TypeScript, NestJS로 작성되었다. 배경 유저가 로그인을 특정 횟수(여기서는 10번이라고 하겠다.)만큼 실패할 경우, 유저의 상태를 블락시키고 유저가 로그인을 할 수 없도록 제한하는 기능을 구현했었다. 이 과정에서 유저 로그인 시에 토큰과 sessionId가 발급되고, Redis와 cacheManager를 사용하여 의 형태로 저장했다. 이 sessionId를 서버와 클라이언트가 주고받다가 로그아웃 또는 유저 블락 시에 해당 sessionId를 redis에서 제거하는 방식이 사용되었다. 이 서비스에서는 동시접속을 허용하고 있었는데, 브라..