Categories
Tags
8
16
32
![커버: [REDIS] 레디스 TTL만으로는 부족했다: Sorted Set으로 만료 시점 제어하기 커버 이미지](/assets/images/post/covers/dalle-til-cover-edit-3d-more.png)
레디스에서 키 만료시간이 중요한 이유 레디스를 캐시나 세션 저장소로 쓸 때, 키에 만료시간을 두지 않으면 데이터가 계속 쌓여 메모리 사용량이 늘어나고 결국 장애로 이어질 수 있습니다. 만료시간(TTL, Time To Live)을 설정해 두면 레디스가 자동으로 키를 삭제해 주어 메모리를 관리하는 데 도움이 됩니다. 또한 캐시의 신선도를 유지하고, 세션이나 임시 데이터를 일정 시간 뒤에 자동으로 정리하는 용도로도 TTL이 많이 사용됩니다.
2026년 02월 08일![커버: [REDIS] 레디스 맛보기 01 커버 이미지](/assets/images/post/covers/TIL-redis.png)
Redis란 요즘 NoSQL과 MQ(메세지큐)에 관심을 가지다보니 레디스를 지나쳐 갈 수 없어서 간단하게 알아보고 실무에 적용해보려 합니다. 현재 프로젝트에 새로운 기술을 도입하는데 제한적이지 않고, 새로운 좋은 기술을 장려하는 분위기라 제안 후 적용 예정입니다. 먼저, 레디스란 무엇일까요? 캐시 관련 기술을 적용하는데 자주 듣던 이름입니다. 레디스는 Remote Dictionary Server의 약자로 원격 사전 서버라고 직역할 수 있겠네요. 파이썬에 딕셔너리라는 타입이 있고, 자바스크립트로 치면 map, 자바로 치면 HashMap과 비교할 수 있을 것 같습니다. 레디스는 아주 단순한 구조로 데이터를 저장하는데요, NoSQL에 속하며, DB의 역할, 캐시, 메세지 브로커로 사용이 가능한 오픈 소스입니다. 다양한 타입이 제공됩니다. 해당 타입들에 대해서는 이야기를 진행하면서 하나 씩 기록해보겠습니다.
2023년 08월 23일![커버: [JAVASCRIPT] 캐시 구현과 적용 커버 이미지](https://user-images.githubusercontent.com/113876485/230905977-c8f2a0b4-d946-4216-8671-667bbbfacdcd.png)
Cache (캐시) 캐시는 느린 기억장치 대신 빠른 기억 장치로 데이터 액세스하여 성능을 향상시키는 기술입니다. 이를테면 CPU, 메모리, 디스크 등 기억 장치 계층 구조에서 빠른 CPU와 느린 기억장치 사이에 중간 계층으로 존재합니다. 예를 들어 네이버를 접속할 때 여러 이미지와 광고, 네이버 로고가 화면에 나옵니다. 매번 접속할 때마다 이 자원들을 불러오는데 1분의 시간이 걸린다고 가정하겠습니다. 그런데 이 자원들을 이미 사용자의 입장에서 가지고 있다면 어떻게 될까요? 즉, 캐시는 이 자원들을 중간 위치에 존재하는 기억장치에 복사 또는 이동해서 가져오는데 걸리는 시간을 줄여 성능을 향상시키고자 하는 기술을 말합니다. 다른 예로는 은행에 대출을 한다고 가정하겠습니다. 대출하기 위해서는 신분증이 필요하지요. 하지만 신분증은 고객이 들고와야 합니다. 이 신분증을 은행에 들릴 때마다 은행이 가지고 있다면 대기 시간이 줄어들고 고객입장에서는 굳이 신분증을 챙겼는지 확인하지 않아도 됩니다. 이 캐시는 API 서버에서도 적용이 됩니다. 이미지, 영상 등의 자원뿐 아니라 API 서버에서도 캐시 정책을 두고 원하는 정책에 따라 사용자에게 응답하는 데이터를 저장해두었다가 요청에 기억해둔 응답을 줄 수 있습니다. 이 포스팅을 작성하는 목적은 우연히 캐시를 구현하고 API서버에 적용한 경험을 기록하고 후기를 공유하기 위함입니다.
2023년 04월 09일