Redis는 키-값 쌍으로 데이터를 저장하는 인 메모리 데이터베이스로 유명하다. 기본적으로 메모리에 데이터를 저장하므로 휘발성이지만, RDB와 AOF 기능을 이용하여 데이터를 디스크에 영구적으로 저장할 수 있다.Redis에 저장될 수 있는 데이터 유형에는 문자열, 리스
RedisTemplate 는 유용한 여러기능들을 보유하고 있는 Redis 모듈의 핵심 클래스다.직렬화나 연결 관리 등의 고수준 추상화를 제공하며, RedisOperations 인터페이스를 구현한다.또한, 특정 타입이나 키에 대해 작업할 수 있는 Operation Vie
Spring Data Redis는 org.springframework.data.redis.cache 패키지를 통해 Spring 프레임워크의 캐시 추상화를 제공한다.버퍼와 캐시는 유사한 뜻으로 받아들여지는 경우가 많다.버퍼는 서로 다른 처리시간을 가진 객체사이에서 특정
소규모 애플리케이션이나 학습목적의 프로젝트에서는 단일 데이터베이스를 사용해 데이터를 관리한다.하나의 데이터베이스만 사용하는 방식은 데이터베이스에 문제가 발생했을 때, 모든 데이터가 손상될 위험성이 존재한다.또한, 일반적으로 읽기연산이 쓰기연산보다 자주 발생하고,인덱스가
Redis에서 데이터는 여러 형태의 데이터 구조로 저장될 수 있다.객체는 Jackson2JsonRedisSerializer를 통해 JSON 문자열로 변환될 수 있는데, Redis 해시를 사용한다면 정교한 매핑이 가능하다.일반적인 JSON 형식이 한 키에 한 값이 매핑되
Redis는 SUBSCRIBE, UNSUBSCRIBE와 PUBLISH 명령어를 이용한 메시지 발행 및 구독기능을 제공한다.즉, 메시지 발행 및 구독을 통해 서로다른 노드( 애플리케이션 )에 실시간으로 이벤트를 전파시킬 수 있다.SUBSCRIBE channel11 ch:
Pub/Sub Messaging 에서 잠깐 언급했던 것처럼 Redis에서 발행되는 메시지는 단 한번만 전송된다.네트워크 장애 등으로 인해 메시지가 발행된 순간에 시스템이 정상이 아니라면 해당 메시지는 소실된다는 의미다. 이를 해결하기 위한 기술로 Redis Stream
2.6 버전이상의 Redis에서는 EVAL,EVALSHA 명령어를 통한 Lua 스트립트를 지원한다.Lua는 명령형/절차형 프로그래밍 언어다EVAL 명령의 script는 실행시킬 Lua 스크립트를 뜻하며, EVALSHA명령의 sha1은 스크립트의 SHA1 해시값을 뜻한다
트랙잭션( Transaction ) 은 일련의 동작을 하나의 작업단위로 묶었을 때, 그 작업단위를 의미한다.예를들어, 은행에서 A가 B에게 송금을 하기 위해서는 출금과 입금이라는 두 개의 동작이 필요하다. 이를 트랜잭션 단위로 생각해보면 결국 송금을 위해서는 두 동작이
앞선 포스팅에서는 RedisTemplate을 이용한 상호작용 방법을 알아볼 수 있었다.템플릿 객체를 Configuration에 등록하고 Bean으로 주입받아 사용하거나, 직접 생성하는 방식으로 사용할 수 있었다.이러한 사용방식은 Redis를 애플리케이션에 적극적으로 사
이번 포스팅에서는 Spring Data의 객체 매핑, 객체 생성, 필드 및 속성 접근, 불변성 등에 대해 다룰 예정이다.소개되는 내용들은 JPA처럼 관계형 DB 매핑을 사용하지 않는 Redis나 MongoDB 같은 모듈에만 해당된다.즉, 테이블처럼 정해진 데이터구조와
Hash Mapping 포스팅에서 살펴봤던 것처럼 Redis는 HashMapper를 이용해 객체를 Hash로 변환한다. 이러한 HashMapper들은 주어진 객체를 key-value 쌍의 Map으로 변환시켜 Redis에 저장하는 역할을 수행한다.과거 포스팅에서 Obje