320x100
320x100

개요

: 이게뭐약 프로젝트에 redis를 도입해서 DBMS 쿼리를 줄여보자는 얘기를 하다가 딥러닝 서버에도 적용하면 어떨까 했는데 딥러닝 담당자가 딥러닝 서버에는 redis 보다는 elastic search가 더 적합하다고 답변을 해서 "내가 elastic search를 잘못 알고 있었나" 하여 다시 찾아서 공부하게됨 

 

 

 

 

레디스

: key-value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 DBMS

: 데이터베이스, 캐시, 메시지 브로커로 사용되는 인메모리 데이터베이스

 

※ 인메모리 데이터베이스

: 메모리에 데이터를 저장하는 데이터베이스

 

- 특징

: key-value 구조이기 때문에 쿼리를 사용하지 않아도 된다

: 메모리에서 데이터를 읽고 쓰기 때문에 속도가 빠르다

: String, Lists, Sets, Sorted Sets, Hashes 자료구조를 지원

: 한 번에 하나의 명령만 처리하는 싱글 스레드 방식

 

※ String: 가장 일반적인 key-value 구조의 데이터

※ Sets: String의 집합이며, 여러 개의 값을 하나의 value에 저장

※ Sorted Sets: 중복된 데이터를 저장하지 않는 Set 구조에 정렬을 적용한 데이터

※ Lists: Array 형식의 데이터 구조. 처음과 끝에 데이터를 넣고 빼는건 빠르지만 중간에 데이터를 삽입하거나 삭제하는 것은 어려움

 

 

 

 

 

엘라스틱 서치

: 정형 및 비정형 데이터를 역색인 구조로 저장하고, 검색, 집계 등의 기능을 수행하는 java 오픈소스 분산 검색 엔진

: full text search 기능이 제공되어 텍스트 데이터에 대해 빠르게 검색할 수 있음

: http 프로토콜로 접근이 가능한 REST API를 통해 데이터 조작을 지원

 

※ 역색인

: 색인의 목적은 문서의 위치에 대한 index를 만들어서 빠르게 그 문서에 접근하고자 하는 것인데, 역색인은 반대로 문서 내의 문자와 같은 내용물의 매핑 정보를 색인해놓는것

: 색인이 책의 목차라면, 역색인은 책 가장 뒤에 있는 단어별 색인 페이지와 같음

 

- 장점

: 전문 검색 (full text search)를 통해 내용 전체를 색인하여 특정 단어가 포함된 문서를 검색할 수 있음. 기능별, 언어별 플러그인 적용도 가능

: 비정형 로그 데이터를 수집하여 통계 분석에 활용 가능. Kibana를 연결하면 실시간으로 로그를 분석하고 시각화 할 수 있음

: Document Oriented 구조이며, 여러 계층 구조의 문서로 저장이 가능. 계층 구조로된 문서도 한 번의 쿼리로 쉽게 조회 할 수 있음

: 분산구성이 가능하며, 분산 환경에서 데이터를 shard라는 단위로 나뉨

 

- 단점

: 완전 실시간이 아님. 색인된 데이터는 1초 뒤에 검색이 가능한데, 내부적으로 commit과 flush 같은 복잡한 과정을 거치기 때문

: 전체적인 클러스터 성능 향상을 위해 리소스 소모가 큰 트랜잭션 롤백을 지원하지 않음

: 데이터의 업데이트를 제공하지 않고, 업데이트 명령이 오면 기존 문서를 삭제하고 새로운 문서를 생성

 

 

 

 

 

Redis와 Elastic Search의 차이점

: Redis는 데이터를 메모리에 저장하는 DBMS고, Elastic Search는 DB에 저장된 데이터를 검색하는 엔진이다

: Redis는 고속 데이터 액세스에 최적화된 반면, Elastic Search는 텍스트 기반 검색 쿼리에 최적화 되어있다

: Redis는 일반적으로 캐싱, 세션 관리 및 실시간 메시징에 사용되며, Elastic Search는 전체 텍스트 검색, 로깅 및 분석에 사용

 

- 데이터 저장 관점에서의 차이

: Redis는 메모리에 데이터를 저장, Elastic Search는 디스크에 데이터를 저장

 

- 결론

: 이 두 개는 사용 목적에 따라 다르다 

 

 

 

 

 

Reference

 

Redis란? 레디스의 기본적인 개념 (인메모리 데이터 구조 저장소)

Redis란? Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터 베이스 관리 시스템 (DBMS)입니다. 데이터베이스, 캐시, 메세지 브로커로 사용되며 인메모리

wildeveloperetrain.tistory.com

 

[Elastic Search] 기본 개념과 특징(장단점)

엘라스틱서치의 기본 개념, 특징에 대해 정리

jaemunbro.medium.com

 

Redis vs Elasticsearch: Difference and Comparison

Redis and Elasticsearch are both open-source, distributed databases, but they differ in their data structures and use cases. Redis is an in-memory key-value store that is optimized for high-performance data processing, while Elasticsearch is a search engin

askanydifference.com

 

300x250
728x90