[Redis] 스프링이 제공하는 Redis 직렬화/역직렬화 (Serializer/Deserializer)
·
Redis
RedisSerializer Redis는 메모리 기반 key-value 저장소이기 때문에, 자바 객체를 직접 넣을 수는 없다.자바 객체(Object) -> 바이트 배열 (byte[]) -> Redis 저장 Redis에 저장된 바이트 배열 -> 자바 객체(Object) 이 변환 과정을 해주는 게 바로 Serializer/Deserializer (직렬화/역직렬화)이다. 스프링에서는 이 과정을 편하게 할 수 있도록 여러 가지 RedisSerializer 구현체를 제공한다. 스프링 Redis 직렬화/역직렬화 종류 1) `StringRedisSerializer` 자바의 String을 바이트 배열 변환을 담당한다. UTF-8 인코딩/디코딩을 사용하고 Redis 자체가 key-value를 문자열 기반으로 관리하기..
[Redis] Redis Pub/Sub
·
Redis
Redis Pub/SubPublish/Subscribe (발행/구독) 패턴은 메시징 시스템의 대표적인 모델 중 하나이다. 발행자(Publisher)는 메시지를 특정 채널에 발행(publish)하고 구독자(Subscriber)는 원하는 채널을 구독(subscribe)한 뒤 해당 채널로 들어오는 메시지를 수신한다.이것의 특징은 발행자와 구독자가 서로 직접 알 필요가 없고, 중앙 메시지 브로커가 메시지를 중개한다는 점이다. 구조 Redis에는 기본적으로 Pub/Sub 기능을 내장하고 있으며, 동작 흐름은 다음과 같다. 구독 (Subscribe) : 클라이언트가 채널 구독 발행 (Publish) : 다른 클라이언트가 명령어 실행 전파 (Broadcast) : Redis 서버는 채널을 구독한 모든 클라이언트에게..
[Redis] Redis란 무엇인가 ?
·
Redis
Redis (Remote Dictionary Server) Redis는 원격(Remote)에 위치하고 프로세스로 존재하는 인메모리 (In-Memory) 기반의 Dictionary(key-value) 구조 데이터 관리 서버 시스템이다. 여기서 key-value 구조는 mysql 과 같은 관계형 데이터가 아닌 비 관계형 구조로서 데이터를 그저 '키-값' 형태로 단순하게 저장하는 구조를 말한다. 그래서 관계형 데이터베이스와 같이 쿼리 연산을 지원하지 않지만, 대신 데이터의 고속 읽기, 쓰기에 최적화되어 있다. Redis는 그래서 일종의 NoSQL로 분류되기도 한다. Redis는 데이터 처리 속도가 엄청 빠른 NoSQL 데이터베이스이다. - NoSQL 데이터베이스는 key-value의 형태로 저장하는 데이터..