Trie와 Redis ZSET 비교: 키워드 자동완성 기능에 가장 효율적인 방법은?
·
Redis/Redis 개념
Redis를 사용해서 검색어 자동 기능검색을 구현하려고 할때 두 가지 방법으로 구현이 가능하다. 단, 조건은 중간 단어 검색이 아닌 첫 글자를 기준으로 검색했을때를 기준으로 선정한 방법이다.검색 엔진, 추천 시스템, 그리고 실시간 키워드 자동완성 기능은 사용자 경험(UX)을 크게 향상시킨다. 이러한 기능을 구현하기 위해 주로 사용되는 두 가지 접근법은 Trie 알고리즘과 Redis ZSET이다.이 글에서는 Trie와 Redis ZSET을 비교하고, 키워드 자동완성 기능에 어떤 방법이 더 효율적인지 살펴본다.1. Trie 알고리즘이란?Trie는 접두사 트리(Prefix Tree)라고 불리며, 문자열의 공통 접두사를 공유하는 자료구조다.Trie의 주요 특징접두사 검색에 최적화: 입력된 문자열의 접두사를 기준..
[컴퓨터 구조 + 캐시 ] 우리가 Redis를 사용해서 캐시 메모리를 쓰는 이유
·
면접 준비
[공부 주제]오늘 공부해 볼 내용은 컴퓨터의 전반적인 부품이다. 위 내용들에 대해 모두 다룰 것이지만 내가 사용하는 캐시처리에 대해서 조금 더 집중적으로 알아 보려고 한다.Redis를 사용하는 방법이 왜 Inmemory인지 그리고 왜 그게 RDB보다 더 빠른지 이번 기회에 확실하게 개념을 다잡고자 한다.   [주제1] CPU명령어를 이해하고 처리하는 동작을 수행하는 CPU는 아래 기능을 수행한다.명칭약어/fullName역할산술논리연산장치ALU / Arithmetic and Logic Unit사칙 연산, 논리 연산과 같은 우리 뇌에서 처리하는 역할이다. 실질적인 연산은 여기서 수행된다.제어장치CU / Control Unit명령어를 해석해서 제어 신호(전기 신호)로 내보낸다. CPU가 메모리를 향해 제어 신..
Redis Pub/Sub을 활용한 채팅 구현의 여정 - 개념편
·
Redis/Redis 채팅
수많은 우여곡절 끝에 배포된 서버에 채팅 기능을 적용하게 되었다!간단히 말하자면 원래 담당했던 백엔드 팀원이 던져놓은 빅 똥을 치우게 되었다.내 프로젝트의 스택은 아래와 같다.Java 17 / Spring 3.x / JPA / Redis / Spring Security / JWT / OAuth / Websocket / MySQL / Firebase그리고 처음 팀원이 던져놨던 채팅 구현을 위한 기능은 Kafka + Socket.io 였다. 내가 알기로 Kafka는 MSA구조에서 그룹으로 묶어 메세지를 전달하는 메세지 큐 방식에 적합한 절대 가볍지 않은 스펙의 프레임워크였으며, Socket.io 또한 Spring으로 만든 프로젝트가 아닌 별도로 서버가 생성되는 과정을 요구하는 방식이였으나 팀원을 믿고 기다렸..
[Redis] SpringBoot + Redis Pub/Sub 으로 채팅 구현 하기
·
Redis/Redis 채팅
1. Redis 채팅을 위한 pub/sub 개념- 따로 Notion 페이지에 정리를 해두었다.https://bitter-gambler-dbe.notion.site/Redis-1dcd91f7116d47f694de31ac71f8b4ab?pvs=4 Redis - 기본개념 | Notion목차bitter-gambler-dbe.notion.site이 글은 기본적인 Redis의 Pub/Sub 개념만을 사용하여 채팅을 구현하였으며 하나의 세션이 아닌 다른 세션에서 참가해도 함께 채팅이 가능한 멀티 서버이다.이 글을 다 작성하고 바로 채팅 기록을 MongoDB를 사용해서 저장하려고한다. 그 이후에는 Jwt토큰으로 유효성 검사를 하는 코드까지 추가할 것이니 하나씩 따라해보면 좋을 것 같다. 2. 필요한 환경- Java 1..
Redis기본 개념, 자료구조
·
Redis/Redis 개념
Redis의 이해대규모 서비스를 운영하기 위해서는 데이터를 안전하게 그리고 빠르게 저장하고 불러오는 기술이 필요하다.Redis는 In-Memory 데이터베이스이다. 모든 데이터를 메모리에 저장하고 조회한다.기존 RDB보다 빠른 이유는 메모리 접근이 디스크 접근보다 빠르기 때문이다.Redis는 캐싱 솔류선, NoSQL, Key-Value저장소라고 부르기도 한다Redis의 주요 특성Key-Value 스토어Key-Value 저장 방식의 스토리지 지원컬렉션을 지원List, Set, Sorted Set, Hash 등의 자료구조를 지원Pub/Sub 지원Publisher,Subscriber 모델을 지원디스크 저장(Persistent Layer)현재 메모리의 상태를 디스크로 저장할 수 있는 기능현재까지의 업데이트 내용..
[Spring/Redis] Redis문서정리(Redis Spring 시작하기)
·
Redis/Redis 개념
본격적인 Redis와 Spring을 배우기 위한 문서 번역 정리입니다!링크는 아래와 같습니다.https://redis.io/learn/develop/java/redis-and-spring-course/lesson_2Spring과 Redis: 시작하기저자: Brian Sam-Bodden, Redis 개발자 옹호자목표Spring Boot 애플리케이션의 기본 구조를 생성하고, 모든 종속성을 구성하며, 강의에 적합한 Redis 인스턴스를 실행합니다.학습 내용Spring Boot 애플리케이션을 생성하고 Redis를 사용하도록 구성하는 방법애플리케이션에 Redis를 구성하고 실행하기 위한 docker-compose 파일을 Git 하위 모듈로 추가하는 방법애플리케이션의 샘플 원시 데이터를 Git 하위 모듈로 추가하는..