Redis란?

강우엉·2023년 9월 17일
0

study

목록 보기
18/44

Redis란?

Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터 베이스 관리 시스템 (DBMS)이다.

데이터베이스, 캐시, 메세지 브로커로 사용되며 인메모리 데이터 구조를 가진 저장소다.

Redis를 사용하는 이유

데이터를 저장하고 관리하는 목적이라면, 데이터베이스가 있는데도 Redis를 사용하는 이유가 무엇일까?

데이터베이스는 데이터를 물리 디스크에 직접 쓰기 때문에 서버에 문제가 발생해도 데이터가 손실되지않는다. 하지만 매번 디스크에 접근해야하므로 사용자가 많아지면 부하가 생겨 느려질 수 있다.

그리하여 캐시 서버를 도입하는 방법을 많이 사용하는데, 캐시 서버로 사용할 수 있는것이 바로 Redis다.

캐시는 한 번 읽어온 데이터를 임의의 공간에 저장하여 다음 그 데이터가 필요할때는 빠르게 결과를 가져올 수 있다. Redis를 사용하면 같은 요청마다 데이터베이스에 접근하는게 아닌 캐시 서버에서 첫번째 요청때 저장해놓은 값을 사용하는것이다. 데이터베이스의 부하를 줄이고 속도도 느려지지않는다.

Redis의 특징

  • 메모리 데이터 스토어: Redis는 데이터를 메모리에 저장하므로 매우 빠른 데이터 액세스 속도를 제공한다. 이것은 읽기 및 쓰기 작업 모두에 대해 매우 효율적이며, 주로 캐싱 작업에 많이 사용된다.

  • 키-값 저장: Redis는 키와 값으로 데이터를 저장하며, 이것은 NoSQL 데이터베이스와 유사한 형태다. 각 키는 고유하며 해당 키에 연결된 값을 검색하거나 갱신할 수 있다.

  • 데이터 구조 지원: Redis는 문자열, 리스트, 셋, 해시, 정렬된 집합 등 다양한 데이터 구조를 지원한다. 이는 다양한 데이터 모델을 구현할 때 유용하다.

  • 지속성 옵션: Redis는 데이터를 메모리에 저장하지만, 디스크에도 데이터를 지속적으로 저장할 수 있는 옵션을 제공한다. 이를 통해 데이터의 내구성을 확보하고 장애 복구를 지원한다.

  • 분산 캐시: Redis는 여러 서버 간에 데이터를 공유하기 위한 분산 캐시로 사용됩니다. 이를 통해 응용 프로그램의 성능을 향상시키고 데이터베이스 부하를 줄일 수 있다.

  • 메시지 브로커: Redis는 Publish/Subscribe 패턴을 지원하며, 메시지 브로커로 사용하여 다른 서비스 간의 비동기 통신을 구현하는 데 활용된다.

  • Single Threaded: 한 번에 하나의 명령만 처리할 수 있다. 그렇기 때문에 중간에 처리 시간이 긴 명령어가 들어오면 그 뒤에 명령어들은 모두 앞에 있는 명령어가 처리될 때까지 대기가 필요하다.

Reference

profile
우엉이의 코딩 성장일기💻

0개의 댓글