Database/Redis
[Redis] Stream
[Redis] Stream
2024.10.10실시간 데이터 처리, 메세지 큐, 이벤트 스트리밍을 구현할 때 사용된다. Redis Core 내부에 포함되어있어 RediSearch 처럼 별도의 모듈로 설치되지 않아도 사용할 수 있다. Message Producer / Redis / Worker 로 구성된 시스템에서 서는 Redis가 메세지 큐 역할을 수행해 생산자가 생산한 메세지를 큐에 저장하고 소비자가 큐에서 메세지를 가져가 처리할 수 있도록 도와준다. 스트림에 데이터를 추가할 때는 XADD 명령어를 사용한다. 스트림 명과 고유 ID를 지정한 후 key - value 쌍을 입력받는다.고유 ID를 * 로 지정할 경우 Redis는 내부에서 Unix Timestamp 기반 ID를 생성하는데, ID가 겹치는 경우 -0, -1 처럼 옵션이 함께 붙어 ..
[Redis] Module - RediSearch
[Redis] Module - RediSearch
2024.10.06Redis Core는 Redis의 핵심 기능을 담당하는 부분으로 메모리 기반의 키-값 저장소를 의미한다.Redis Modules는 Redis Core의 기본 기능을 확장하기 위해 개발된 모듈 시스템으로, Redis Core가 제공하는 기본 데이터 타입 이외에 다른 특화된 기능을 제공한다. 모듈은 독립적인 C/C++ 기반 프로그램으로 Redis 서버가 시작할 때 해당 모듈을 가져와서 Redis 내부에 포함시키는 방식으로 사용한다. RediSearch : Redis에 검색 기능을 추가해 전체 텍스트 검색, 자동완성, 필터링, 정렬 등을 제공한다.RediSQL : Redis에서 SQL을 사용할 수 있게 해 주는 모듈이다.RedisJson : JSON 데이터를 Redis에서 다룰 수 있게 해 준다. Redis..
[Redis] 동시성 제어
[Redis] 동시성 제어
2024.05.25Redis는 캐시 저장소로 사용되지만.. 일단 "데이터베이스" 이니 일관성, 동시성, 신뢰성을 보장하기 위해 트랜잭션을 지원한다. await isolatedClient.watch(itemsKey(attrs.itemId));return isolatedClient .multi() .rPush(bidHistoryKey(attrs.itemId), serialized) .hSet(itemsKey(item.id), { bids:item.bids + 1, price: attrs.amount, highestBidUserId: attrs.userId }) .zAdd(itemsByPriceKey(), { value: item.id, ..
[Redis] 파이프라인과 자료구조
[Redis] 파이프라인과 자료구조
2024.05.15자바, 파이썬, 자바스크립트 등 백엔드를 구축할 때 사용되는 다양한 프로그래밍 언어와 프레임워크 수준에서 Redis를 사용할 수 있도록 지원하는 라이브러리를 제공한다. 자바는 Jedis 라이브러리로 Redis를 사용하는 직관적인 API를 제공하고, 스프링 프레임워크는 Spring Data Redis 라이브러리를 사용해 스프링에서 Redis를 더 쉽게 다룰 수 있다. 이 라이브러리들은 내부적으로 Redis 명령어를 사용해 Redis 서버와 상호작용하니.. Redis의 명령어 구성을 추상화하고 프로그래밍 언어와 프레임워크의 특성에 맞춘 직관적인 API를 제공한다고 생각하면 된다. const cacheRoutes = [ '/about', '/privacy', '/auth/signin', '/auth/..
[Redis] 캐시 서버와 명령어
[Redis] 캐시 서버와 명령어
2024.04.27Redis는 다른 데이터베이스들과 마찬가지로 데이터를 저장하고 쿼리를 통해 데이터를 가져올 수 있는 데이터베이스지만, Redis의 몇 가지 특징 덕분에 다른 데이터베이스들보다 속도가 빠르다. 기본적으로 많은 DBMS는 데이터를 HDD나 SSD에 저장해 데이터의 영속성을 보장한다.반면 Redis는 데이터를 RAM에 저장해 HDD나 SSD에 데이터를 저장할 때 보다 읽기 및 쓰기 작업을 훨씬 빠르게 수행할 수 있다. 이 외에도 다른 DBMS와는 다르게 Redis는 스키마 대신 key-value 쌍으로 데이터를 저장하고 각 key에 대해 여러 자료구조를 선택해서 사용할 수 있는 등 여러 차별화된 특징을 가지고, 이 특징 덕분에 높은 성능을 보장한다. Redis에서는 문자열인 키..