Redis에서 SQL을??

Dev. 로티·2022년 1월 27일
1

redis

목록 보기
1/3
post-thumbnail

토이 프로젝트를 진행하며 조회 처리 성능을 높여보고자 redis를 적극적으로 사용해왔었는데요

Redis를 사용하면서 Key, Value로만 구성되어 있다보니 항상 Redis 내에 있는 데이터 filtering을 어떻게 할 수 있을까라는 의문이 들었고, Redis를 RDB처럼 사용할 수 있다면 얼마나 좋을까라는 생각을 갖고 있었습니다.

주종면님께서 집필하신 도서 빅데이터 저장 및 분석을 위한 nosql & redis 라는 도서를 통해 Redis를 우리가 사용하는 RDB 처럼 사용하는 방법에 대해 알게되었는데요.

아마 다른 분들도 궁금해하지 않을까 싶어 공유하고자 포스팅하게 되었습니다.


REDISQL

RediSQL is the Fast, in-memory, SQL engine with batteries included.
(출처 : https://github.com/RedBeardLab/rediSQL)

위 내용을 번역해보자면 RediSQL은 배터리를 포함하는 인메모리의 빠른 SQL 엔진이라고 합니다.

RediSQL의 장점은 다음과 같습니다.

  • Redis 기반으로 동작하여 빠른 속도로 초당 최대 130,000개의 데이터를 처리할 수 있습니다.
  • 흔히 사용하는 RDB 문법을 사용하기 때문에 사용하기 쉽습니다.

RediSQL을 사용하기 위해서는 먼저 RediSQL을 사용할 수 있도록 세팅을 해주어야합니다.

먼저 RediSQL 사용시 필요한 파일을 먼저 다운로드 받도록 합니다.

리눅스일 경우
1. wget https://github.com/RedBeardLab/rediSQL/releases/rediSQL_0.6.0.so
2. config 파일에 load module (rediSQL.0.6.0.so 파일 경로)를 작성해줍니다.
3. Redis server 를 띄웁니다.
도커일 경우
 1. siscia/redisql 도커 이미지를 run 시키도록 합니다. (위 이미지는 redis-cli 또한 제공하고 있습니다.)

위와 같이 세팅하셨다면 RediSQL 사용 준비는 모두 마무리 되었습니다.

이제 간단하게 RediSQL을 사용하는 방법에 대해 익혀보도록 하겠습니다.

REDISQL.CREATE_DB SALES
(SALES 는 사용할 DB 이름입니다.)
위 명령어를 통해 REDISQL에서 사용할 DB를 생성할 수 있습니다.

REDISQL.EXEC SALES “CREATE TABLE emp(no int, name text, address text, deptno int);”
위 명령어를 통해 생성한 SALES DB에 emp라는 테이블을 생성할 수 있습니다.

REDISQL.EXEC SALES “INSERT INTO emp VALUES (1101, ‘Jerry’, ‘SEOUL’, 28);”  
위 명령어를 통해 생성한 emp 테이블에 데이터를 삽입할 수 있습니다.

REDISQL.EXEC SALES “SELECT * FROM emp;”
위 명령어를 통해 emp 테이블의 모든 데이터를 출력할 수 있습니다. 
필요에 따라 WHERE 조건과 Join, ORDER BY, Subquery, Limit 등을 사용할 수 있습니다.

더 자세한 사용 방법은 여기를 참고하시면 될 것 같습니다.

0개의 댓글