관리 메뉴

개발이야기

[ Database ] Redis XADD , XRANGE , XREVRANGE 사용법 본문

DB & Infra/Database

[ Database ] Redis XADD , XRANGE , XREVRANGE 사용법

안성주지몬 2019. 4. 22. 00:00

Redis 에는 특별한 command 가 존재합니다. 흔한 명령어 앞에 X 를 붙인 명령들인데요. 

먼저 Xadd 부터 살펴보겠습니다.

 

1. XADD

 

xadd 의 명령어 패턴은 아래와 같습니다.

xadd key ID field string 

먼저 key 값은 redis 에서 값에 접근하는 key를 의미합니다. 

ID 는 보통 * (asterisk)로 지정하게 되는데 값이 들어갈때의 timestamp 가 들어갑니다. 

ID 는 '1555414128596-0' 이런 형태로 되어있습니다. timtestamp 옆에 있는 숫자는 해당 timestamp 에 값이 중복으로 들어가면 

구별해주는 갑이 됩니다. id 는 중복될 수 없습니다. 따라서 이미 '1555414128596-0' 값이 존재한다면 id 값을 '1555414128596-1' 로 지정해주어야 제대로 값이 들어갑니다.

filed 와 string 은 python의 딕셔너리 Javascript 의 Object 값과 유사합니다. filed 가 key 값이 되고 string 이 value 값입니다.

 

예시를 살펴보면 

xadd 예시 

그렇다면 xadd 로 넣어준 값은 어떻게 확인할 수 있을까요 ?

 

2. XRANGE

 

xadd로 넣어준 값은 XRANGE 를 통해 확인이 가능합니다.

 

xrange 예시

위의 명령을 입력해주면 아래와 같은 결과를 보실 수 있습니다.

 

결과값

xrange 명령은 count 옵션을 사용하여 원하는 개수만큼 결과를 출력할 수 있습니다.

count 예제

 

xadd 명령은 timestamp 가 자동으로 id 값이 된다는 점에서 시계열 데이터를 다루기에 굉장히 유용합니다.

하지만 만약 초단위로 데이터를 받는다면 데이터의 양이 방대해져 처음 값을 찾기가 힘들어 질 수도 있습니다.

 

3. XREVRANGE 

xrevrange 명령은 xrange 명령을 reverse 시켜줍니다.

 

xrevrange 예제

주의하셔야 할 점은 xrange 가 - + 를 사용한다면 xrevrange 는 + - 를 사용한다는 점입니다.

 

민약 xadd 로 추가한 키에서 특정 시간의 id를 찾고 싶다면 아래와 같이 입력해주면 됩니다.

특정시간 예제

위와 같은 명령을 입력해주면 1555414490152 이상의 id 값들만 출력하게 됩니다.

 

레퍼런스 

[1] http://redisgate.kr/redis/command/xadd.php

Comments