redisGate


redisGate 설명

redisGate는 Redis의 data를 실시간으로 MySQL에 저장해줍니다.
아래 Play 버튼을 클릭해 보세요. 레디스게이트 동작 방식을 애니메이션으로 볼 수 있습니다.

Apps
Redis
redisGate
RDBMS

기능

  • 애플리케이션에서 레이스에 데이터를 저장하면 레디스게이트는 그 명령(데이터)를 읽어서 SQL로 변환해서 RDB에 저장합니다.
    레디스게이트는 레디스 명령 변환 기술을 이용해서 레디스 DB에 저장, 수정, 삭제되는 데이터를 RDB에 저장, 수정, 삭제합니다.
  • 그렇다고 무조건 모든 데이터를 RDB에 적용하는 것은 아닙니다. 레디스게이트 설정를 통해 데이터 종류별로 RDB에 적용 여부를 정할 수 있습니다.
  • 레디스 명령별로 적용하는 방법과 키 패턴별 적용하는 방법이 있습니다.
  • 명령별 적용 방법: 예를 들어, SET 명령은 적용하고, DEL 명령은 적용하지 않을 수 있습니다.
  • 키 패턴별 적용 방법: 예를 들어, user로 시작하는 key는 RDB에 저장하고, temp로 시작하는 key는 RDB에 저장하지 않도록 정할수 있습니다.
  • 따라서, Redis에서는 데이터를 삭제하지만 RDB에서는 삭제하지 않도록 설정해서, RDB에는 데이터를 영구 보관할 수 있습니다.
  • 레디스게이트 시작 시 RDB 필요한 테이블을 생성합니다. 따라서 RDB에서는 별도의 작업이 필요없습니다.
  • 레디스게이트는 리눅스 버전입니다.

이점

  • 레디스의 빠른 응답속도의 이점을 취하고 데이터는 RDB에 안전하게 보관됩니다.
  • 데이터 조회의 경우 기존 사용하던 SQL기술을 이용하시면 됩니다.
  • 레디스 서버가 down되어도 RDB에 데이터가 안전하게 보관되어 있으므로 복구 가능합니다.

Redis와 RDB(MySQL)을 같이 사용하는 고객을 위한 제안

  • 이런 사이트에서는 데이터를 두 종류로 나누어 빠른 처리가 필요한 것은 레디스에 저장하고, 그렇지 않은 것들은 RDB에 넣습니다. 그런데 레디스에 저장한 데이터들도 일부는 영속적으로 보관해야 하기 때문에 주기적으로 레디스 데이터를 RDB에 저장해야 합니다.
  • 애플리케이션 개발시 레디스와 RDB 양쪽을 고려해야 하기 때문에 어려움이 있습니다.
  • 이제 모든 데이터를 초고속 DB니 레디스에 저장하면, 레이스케이트가 데이터를 RDBd 실시간으로 저장합니다. 이제 개발팀은 레디스에만 저장하므로 DB 이중 관리로 인한 개발 비효율이 개선되어 개발 생산성이 높아지고, 속도도 더 빨라져 고객 만족도도 개선될 것입니다. 그리고 레디스 서버 다운 시에도 안전하게 보관되어있는 데이터로 복구할 수있습니다.

현재 Redis를 사용하지 않는 고객을 위한 제안

  • 속도 향상을 위해 레디스와 레디스게이트를 함께 검토해 보십시요.
  • 초고속 DB인 레디스를 사용으로 애플리케이션 성능이 향상되고,
  • RDB로 데이터의 안전한 보관과 레디스 서버 다운시 복구가 가능하고,
  • DB 이중 개발의 비효율성을 개선할 수 있습니다.

Download, 설정, 실행

Download

  • download: redisgate.zip
  • 압축 풀기: unzip redisgate.zip
  • 파일 구성
    • redisgate.jar: redisgate 본 파일
    • mysql-connector-java-5.1.34-bin.jar: MySQL connector
    • redisgate_mysql_conf.xml: redisGate 설정 파일
    • redisgate_start.sh: redisGate 실행 파일(shell)

MySQL : redisgate user 만들기, DB 만들기

  • redisgate user 만들기: mysql>create user redisgate identified by 'password123';
  • redisdb 만들기: mysql>create database redisdb;
  • 권한주기: mysql>grant all on redisdb.* to redisgate;
    mysql>flush privileges;

redisGate 설정 : redisgate_mysql_conf.xml

  • redis appendonly.aof 파일 path: <appendonly.path>/usr/local/redis-3.0.0</appendonly.path>
    appendonly.path 안에 appendonly.aof 파일이 있는 path를 지정한다.
  • appendonly 파일명 지정: <appendonly.file>appendonly.aof</appendonly.file>
  • MySQL IP, Port, DB 지정: <connection.string>jdbc:mysql://127.0.0.1:3306/redisdb</connection.string>
  • MySQL userid 지정: <userid>redisgate</userid>
  • MySQL password 지정: <passwd>password123</passwd>

redisGate를 사용하기 위한 Redis 설정 : redis.conf

  • appendonly yes -> AOF 기능 활성화
  • appendfilename "appendonly.aof" -> filename은 변경가능
  • appendfsync everysec -> 매 초 마다 AOF에 write 하도록 설정
  • auto-aof-rewrite-percentage 0 -> AOF를 auto rewrite하지 않도록 설정

redisGate 실행 화면

Redis_Web_Client
  • redisgate.sh을 실행하면 위와 같은 화면이 나옵니다.
  • redisGate 설정 파일을 읽어 MySQL에 로그인해서 필요한 테이블을 생성합니다.
  • appendonly 파일을 확인합니다.
  • 실행되는 redis 명령을 읽어 SQL로 변환해서 MySQL에 저장/수정/삭제하는 동작을 계속합니다.

구매

  • 구매를 원하시면 02.503.2235, redisgate@gmail.com으로 연락주십시요



질문하거나 댓글을 보려면 클릭하세요.  댓글수 :    조회수 :

Email 답글이 올라오면 이메일로 알려드리겠습니다.