참고 영상:
https://www.youtube.com/watch?v=Gimv7hroM8A&t=36s
- Redis 개요:
- Redis는 원격 서버에서 데이터를 저장하고 관리하는 인메모리 데이터 구조 서버로, 다양한 자료구조를 지원하며, 매우 빠른 성능을 자랑합니다.
- Redis는 인메모리 데이터 저장소로 데이터를 RAM에 저장하여 빠른 응답 속도를 제공합니다.
- Cache 개념:
- Cache는 자주 사용되거나 최근에 사용된 데이터를 미리 저장하여, 필요할 때 더 빠르게 불러오는 방식입니다.
- Cache는 메모리에 저장되며, 휘발성이라는 특징 때문에 전원이 꺼지면 데이터가 사라집니다.
- 자료구조:
- Redis는 다양한 자료구조를 지원합니다. 대표적으로 String, List, Set, Sorted Set, Hash 등이 있습니다. 이 자료구조는 자바의 컬렉션 프레임워크와 유사한 기능을 제공합니다.
- Redis에서 발생했던 문제 사례:
- 키의 범위가 커짐에 따라 발생한 성능 문제 및 패치 내용.
- Redis는 키 밸류 구조에서 키값이 많아졌을 때 성능 저하 문제가 발생할 수 있으며, 패치로 해결된 사례가 있음.
- 싱글 스레드 특성:
- Redis는 싱글 스레드로 동작하기 때문에, 명령어의 시간 복잡도를 고려해야 합니다. 시간 소요가 큰 명령어는 성능 저하를 초래할 수 있습니다.
- 메모리 관리:
- 메모리 파편화, 가상 메모리, Fork 과정에서의 메모리 사용량 증가와 같은 이슈를 관리해야 합니다.
- Redis는 데이터를 RAM에 저장하기 때문에 메모리 관리가 중요합니다.
- Replication과 백업:
- Redis는 데이터 유실을 방지하기 위해 복제(replication) 기능을 제공하며, 주기적으로 백업이 필요합니다.
- 클러스터링:
- Redis는 클러스터링을 통해 확장성을 제공하며, 데이터 분산 알고리즘을 사용하여 데이터를 고르게 나눕니다.
마지막으로 Redis를 효율적으로 사용하는 방법으로는 스케일 아웃, 클러스터링, 데이터 그리드 등이 있으며, 이를 통해 Redis의 성능을 최적화할 수 있습니다.