레디스 서버, 클라이언트, Spring Data Redis의 간단한 소개와 Redis 서버 마이그레이션시 참고해야하는 문서관련 리서치한 내용 소개드립니다.

 

 

Redis 서버, 클라이언트, Spring Data Redis 소개 및 Redis 마이그레이션 참고사항

 

 

 Redis 

 

1. 레디스 클라이언트

자바 레디스 클라이언트는 대표적으로 Lettuce와 Jedis가 있다.

 

https://redis.io/resources/clients/#java

 

 

 레디스 클라이언트는 레디스 명령어를 실행시켜주는 드라이버를 말한다. 레디스 명령어는 아래 공식 홈페이지에 내장된 클라이언트를 통해 웹에서 바로 실행해볼 수 있다

 

Commands

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker

redis.io

 

 

- Lettuce : Thread-safe, non-blocking 기능을 가진 레디스 클라이언트.

Jedis는 위에 언급된 Lettuce에서 제공하는 기능은 제공하지 않으며, connection pool 관련해서도 차이가 존재한다.

 

 

아래는 Lettuce를 소개할때 포함된 프레임워크, 라이브러리인데 참고로 알고는 있으면 좋을 것 같아 키워드만 정리했다.

 

- netty : 비동기 이벤트 기반 네트워크 어플리케이션 프레임워크. lettuce는 이 netty 기반으로 구현됐다.

- reactor : JVM기반 non-blocking 어플리케이션 구축을 위한 reactive 라이브러리. Lettuce는 reactor 의존성을 가지고 있다.

https://lettuce.io/core/release/reference/#_project_reactor

 

 

 현업에서 커뮤니케이션할 때 가끔 레디스 서버, 클라이언트 구분없이 레디스로 혼재하여 표현하는 경우가 있다. 상황에 맞게 구분해서 표현하면 좋을 것 같다.

 

 

todo.

- 스프링에 간단한 레디스 클라이언트 구축하기

 

later.

- automatic failover, sentinel

- persistency, data recovery

- PUB/SUB

 

 

 

2. Spring Data Redis(SDR) : 

스프링 프레임워크에서 쉽고 편하게 레디스 클라이언트를 이용하기 위해 만든 프로젝트.

 

https://mashhurs.wordpress.com/2020/03/26/jedis-vs-lettuce-java-redis-clients/

 레디스 클라이언트를 통합할 수 있는 인터페이스를 제공하여, 구현체에 관계없이 스프링에서 레디스를 사용할 수 있도록 한다. 

https://docs.spring.io/spring-data/data-redis/docs/current/reference/html/#why-spring-redis

 

 

 

3. 레디스 (Server)

레디스라고 하면 레디스 서버를 말하며, 실제 데이터가 저장되는 저장소를 지칭한다. 웹서버에 붙어 있는 레디스 클라이언트를 통해 명령어를 수행하면, 연결된 레디스 서버에서 해당 명령어를 처리하게 된다.

 

- Redis Latest Version

작성일 기준 최신버전은 7.0 버전이다.

https://github.com/redis/redis/archive/7.0.8.tar.gz

 

 

4. Redis 버전 업그레이드시 검토사항

릴리즈 노트를 확인해 현재 버전에서 마이그레이션 가능한지 여부를 확인할 수 있다.

 

만약 현재 레디스 서버를 5.0을 쓰고 있는데 6.0으로 버전을 올리기를 원한다면, 레디스 6.0의 릴리즈 노트를 참고한다. 버전별 릴리즈노트는 레디스 공식 홈페이지의 다운로드 페이지에서 확인가능하다.

// https://raw.githubusercontent.com/redis/redis/6.0/00-RELEASENOTES

...

Migrating from 5.0 to 6.0
=========================

Redis 6.0 is mostly a strict superset of 5.0, you should not have any problem
upgrading your application from 5.0 to 6.0. However this is a list of small
non-backward compatible changes introduced in the 6.0 release:

* The SPOP <count> command no longer returns null when the set key does not
  exist. Now it returns the empty set as it should and as happens when it is
  called with a 0 argument. This is technically a fix, however it changes the
  old behavior.
  
  ...

 

 버전에 따른 변경사항들에 대해서 소개가 최신버전 순으로 작성되어 있다. 페이지 제일 하단으로 내려가면 마이그레이션 시에 체크해야하는 내용들이 포함되어있다. 

 

 레디스 클라이언트나 Spring Data Redis등의 라이브러리는 여러 오픈소스 라이브러리 저장소에서 버전별 신규기능이나 마이그레이션 가이드를 제공해 쉽게 찾을 수 있었다. 레디스 서버도 당연히 그럴줄 알고 친절한 문서를 찾느라 시간을 쏟았는데 결국 별도로 그런 문서는 찾지 못했다. 

 

참고문서

http://redisgate.kr/redis/introduction/redis_release7.php

 

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기