복붙노트

[REDIS] 레디 스에서 시계열 기억

REDIS

레디 스에서 시계열 기억

나는 레디 스에 약간의 시계열 데이터를 저장해야합니다. 나는 유닉스 타임 스탬프를하고 난 값을 연결해야한다는 (타임 스탬프를 <-> 값)

나는 점수로 타임 스탬프 (난 타임 스탬프에 zrange을 할 수 있도록) 및 구성원으로 값을 갖는 정렬 된 세트를 시도했다.

127.0.0.1:6379> ZADD timeserie 1392141527245 10 1392141527275 12 1392141527100 10
(integer) 2
127.0.0.1:6379> zscan timeserie 0
1) "0"
2) 1) "10"
   2) "1392141527245"
   3) "12"
   4) "1392141527275"
127.0.0.1:6379>

하지만 난 내 값이 서로 다른 타임 스탬프에 대해 동일 할 수 있지만 구성원이 반복되지 않는된다, 문제를했다. 모든 아이디어는 어떻게 접근 하는가? 다른 데이터가 더 입력되어 있습니까?

해결법

  1. ==============================

    1.이 문제를 해결하는 쉬운 트릭은 타임 스탬프와 값을 연결하는 것입니다.

    이 문제를 해결하는 쉬운 트릭은 타임 스탬프와 값을 연결하는 것입니다.

    대신 저장 :

    ZADD timeserie 1392141527245 10
    

    당신은 저장할 수 있습니다 :

    ZADD timeserie 1392141527245 10:1392141527245
    

    타임 스탬프 형식 : 인코딩 어플리케이션까지 / 값을 구문 분석합니다.

    그들은 메모리에 특히 컴팩트되지 않도록 정렬 된 세트는, 스킵 목록 플러스 해시 테이블로 구현됩니다. 데이터의 볼륨이 큰 경우, 당신은 더 나은 다른 솔루션에 의해 제공됩니다.

    어떤 사람들은 방법으로 정렬 된 세트보다 더 컴팩트 인코딩 시간 시리즈에 일반 문자열을 사용합니다. 당신은 여기에서 예를 찾을 수 있습니다 https://github.com/antirez/redis-timeseries

  2. ==============================

    2.너무 참 값은 반복 할 수 없습니다, 정렬 된 세트입니다. 레디 스 귀하의 사용을위한 가장 좋은 도구가 될하지 않을 수 있습니다, influxdb 같은 전문 데이터베이스에 시도를 제공합니다.

    너무 참 값은 반복 할 수 없습니다, 정렬 된 세트입니다. 레디 스 귀하의 사용을위한 가장 좋은 도구가 될하지 않을 수 있습니다, influxdb 같은 전문 데이터베이스에 시도를 제공합니다.

  3. from https://stackoverflow.com/questions/21932987/storing-time-series-in-redis by cc-by-sa and MIT license