Data12 [Redis] Pub/Sub 1. Pub(Publish) / Sub(Subscribe) : Pub / Sub이란, 특정 채널에 메시지를 발행하는 발행자와 해당 채널을 구독하여 메시지를 수신하는 구독자로 구성되어 있다. 발행자가 메시지를 발행하게 되면 해당 채널을 구독하는 모든 사용자들이 메시지를 받을 수 있다는 특징을 가지고 있으며, 그 예시로 카카오톡 단체 채팅방을 들 수 있는데, 한 사람이 메시지를 쓰면 모든 사람이 해당 메시지를 읽을 수 있는 점이다. 발행자는 어떤 사용자가 구독을 한지 모르고 채널에 메시지를 발행하기만 하고, 구독자는 채널에 발행된 메시지를 가져오기만 하기 때문에, 발행자와 구독자가 서로 분리가 되어서 상호 상태에 대하여 알지 못한다는 특징도 가지고 있다. Redis에서 Pub/Sub은 비동기 처리로 메시지를.. 2023. 7. 19. [Redis] Redis-cli 기본 명령어 Redis에 저장되는 데이터 구조에는 다양한 형태를 가지고 있고 그에 따라 명령어도 많이 구분되어 있다. 이는 Redis 공식 Docs에 설명이 세부적으로 나와있고, 정확한 가이드가 나와있다. Docs : https://redis.io/docs/data-types/ 그중에서 가장 많이 사용되는 Strings, Lists, Sets, Sorted Sets와 Hashes의 Redis-cli의 명령어에 대하여 알아볼 것이다. 1. Strings # redis-cli set # Create / Update(Key 존재 시) get # Read del # Delete(String 타입 이외에도 적용 가능) getset # value 값을 가져오고 set값으로 대체 append # value + (ex. key가 .. 2023. 7. 11. [Redis] Redis란 1. Redis란 : Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터 베이스 관리 시스템 (DBMS) IMDB : 데이터베이스, 캐시, 메세지 브로커로 사용되며 인메모리 데이터 구조 Single Thread : 명령어를 하나씩 처리하기 때문에 긴 명령어가 들어오면 처리될 때까지 후 순위의 명령어의 대기가 필요 get, set과 같은 단순한 명령어의 경우 초당 10만 개 이상 처리가 가능 2. 활용 사례 : I/O가 많은 데이터 처리 사용자의 세션 관리 API 캐싱 3. Redis의 데이터 구조 : Strings : 텍스트, 직렬화된 개체 및 이진 배열을 포함하여 바이트 시퀀스를 저장 Lists : 문자열 값의 연결된 목록 스택과 큐를 구현 백그라운드 작.. 2023. 7. 9. [Kafka] 멱등성/At least once/At most once/Exactly once MSA(Micro Service Architecture)에서 EDD(Event Driven Development)를 기반으로 개발을 할 때 Kafka를 이벤트 브로커로 많이 사용하게 되고, 그와 더불어서 이슈가 되는 것이 멱등성에 관한 내용이다. 아래 글은 Kafka에서 멱등성과 관련된 내용을 다룬 것이다. 1. 멱등성(Idempotence) : 멱등성 : 동일한 요청이 여러 차례 반복되어 작업이 처리되어도 동일한 결과를 나타내는 특성 Kafka의 Producer와 Consumer가 Pull 방식으로 발생한 이벤트를 처리하는데, 여기서 Producer와 Consumer에서 메시지 유실 또는 메시지 중복 처리가 발생할 수 있고, 이는 멱등성을 보장하지 못한다. 2. At least once : at_lea.. 2023. 7. 1. [Kafka] Kafka란? 1. Kafka : 아파치 카프카(Apache Kafka)는 LinkedIn에서 개발되었으며, Java 및 Scala 기반의 고용량 실시간 데이터 스트림에 특화된 분산 스트리밍 플랫폼이다. 카프카는 이벤트 브로커라고도 하며, Topic이라는 이벤트 스트리머를 통한 메시지 처리를 한다. 발생한 이벤트에 따라서 토픽에 메시지를 발행하고, 토픽을 구독하고 있는 소비자가 메시지를 소비함으로써 이벤트를 처리하여 해당 오프셋을 표시하고 파티션을 통한 분산저장을 통하여 안정성을 보장한다. 2. Kafka의 구성 요소 : Kafka의 구성은 크게 아래의 4가지로 볼 수 있다. 1. Zookeeper : 카프카 클러스터를 관리하고, 메타 데이터를 관리하는 역할을 수행한다. 2. Kafka Broker : 카프카 브로커로.. 2023. 4. 28. [Search Engine] Meilisearch 1. Meilisearch란? Rust 기반으로 제작된 API 기반 오픈소스 검색엔진이다. https://www.meilisearch.com/ 프랑스 파리에서 설립된 스타트업 Meili에서 제작한 검색엔진이며 현재까지 1,500만 달러의 투자금을 유치하며 지속적으로 개발 중이다. 2. Support Language 공백을 기준으로 단어를 나누는 언어 (ex. English) - Default 중국어 일본어 히브리어 태국어 한국어 (Default -> 형태소 분석 적용 진행 중 - 2022.11.01) ※ 한국어는 현재 공백을 기준으로 단어를 토큰화하여 검색 (ex . 오늘은 월요일 입니다 -> [오늘은] [월요일] [입니다] | 오늘은월요일입니다 -> [오늘은월요일입니다]) ※ 형태소 분석 : 더 이상 .. 2022. 11. 1. 이전 1 2 다음