Redis란 무엇인가요?
Redis란 인메모리 데이터 저장소이며 key-value 기반의 비정형 데이터를 저장하고 관리하는 NoSQL DBMS 입니다.
Redis의 특징으로는 빠른 성능과 다양한 데이터 타입을 지원이 있으며 DB, 캐싱, 메시지 브로커 등의 용도로 사용합니다.
캐싱이란 무엇인가요?
캐싱이란 데이터를 빠르게 가져오기 위한 중간 저장소를 뜻 합니다.
주로 메모리에 데이터를 저장하여 디스크 보다 빠른 접근 시간을 가집니다.
데이터를 계산하거나 서버에서 가져오는 작업은 시간과 리소스가 많이 듭니다.
캐시를 사용하면 연산을 최소화하고 시간을 단축할 수 있습니다.
처음에는 데이터를 일반적으로 가져오고 캐시에 저장합니다.
그 이후 같은 데이터를 필요한 요청이 들어오면 서버에서 가져오는 것이 아니라 캐시에서 가져옵니다.
이처럼 캐싱은 연산과 디스크, 서버에 접근하는 작업을 메모리에 접근으로 바꾸어 부하를 줄이고 빠른 응답을 가능하게 합니다.
Redis의 특징으로 무엇이 있나요? (장점)
Redis의 특징으로는 인메모리 데이터 저장소, 다양한 데이터 타입 지원, 영속성 지원, 성능 향상 등이 있습니다.
인메모리 데이터 저장소
Redis는 데이터를 메모리에 저장합니다. 이로 인해 디스크보다 빠른 접근이 가능합니다.
이러한 Redis를 사용하면 데이터에 대한 읽기 쓰기 작업을 빠르게 수행할 수 있습니다.
하지만 모든 데이터를 메모리에 처리하므로 메모리 용량 이상의 데이터를 저장할 수 없는 제한이 있습니다.
다양한 데이터 타입 지원
Redis는 key-value 뿐만 아니라 List, Set, Hash 등 다양한 데이터 타입들을 지원합니다.
이는 개발의 편의성을 높여주고 원하는 형식으로 데이터를 저장하는데 도움을 줍니다.
영속성 지원
Redis는 영속성을 지원하여 서버가 꺼저도 데이터를 복구할 수 있습니다.
Redis는 메모리 저장소라 서버가 꺼지면 데이터가 날아가 버립니다. 이 때, RDB, AOF 방식을 활용하며 날라간 데이터를 복구할 수 있습니다.
RDB는 스냅샷처럼 어느 시점에 데이터를 저장하는 방식입니다. 스냅샷 이후의 저장된 데이터는 불러오지 못하는 단점이 있지만 복구 속도가 빠르다는 장점이 있습니다.
AOF는 Redis의 모든 쓰기 명령을 로그 형태로 저장하는 방식입니다. 모든 데이터를 복구할 수 있따는 장점이 있지만 복구 속도가 느리다는 단점이 있습니다.
이 두 가지 방식을 적절히 활용하여 서버가 내려가 데이터가 날라가도 복구할 수 있어 서비스의 안정성이 올라갑니다.
Redis의 단점은 무엇인가요?
Redis의 단점으로는 메모리 비용 증가와 복잡한 쿼리 미지원, 부실한 보안 등이 있습니다.
메모리 비용 증가
Redis는 메모리에 데이터를 저장하기에 데이터 크기가 커지면 많은 메모리 사용 비용을 초래할 수 있습니다.
복잡한 쿼리 미지원
Redis는 간단한 데이터 읽기, 쓰기 같은 작업은 빠르지만 SQL 같은 복잡한 쿼리나 조인 등의 기능은 지원하지 않습니다.
보안 문제
Redis는 기본적으로 암호화되지 않은 통신을 사용합니다.
Redis는 기본적으로 암호 없이 바인딩되어 외부로부터 접근이 가능하므로 보안 설정이 중요합니다.