복붙노트

[REDIS] 두 교차로 또는 그 이상의 분류 세트

REDIS

두 교차로 또는 그 이상의 분류 세트

나는 두 개의 정렬 된 세트를 가지고 있고, 즉, 교차점을 만들고 싶어. (~ 25 세, 35) AND (급여 BETWEEN 250, 350)

보다 효율에 관한 더 좋은 방법이 있나요 :

ZUNIONSTORE t_age 1 age WEIGHTS 1
ZREMRANGEBYSCORE t_age -inf (25
ZREMRANGEBYSCORE t_age (35 +inf
ZINTERSTORE result 2 salary t_age WEIGHTS 1 0
ZRANGEBYSCORE result 250 350

해결법

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

    1.먼저 적은 카드와 요소 및 복제를 갖고있는 SET 확인하고 짧은 하나를 손질해야한다.

    먼저 적은 카드와 요소 및 복제를 갖고있는 SET 확인하고 짧은 하나를 손질해야한다.

    둘째, 당신이 먹다 남은 음식을 떠나고있다. 당신은 빨리 정리가 동일한 보조 ZSET을 다시 사용할 수 있습니다.

    또한 DUMP 제안과 복제에 대한 복원 싶었지만, 정렬 된 세트의 경우에 ZUNIONSTORE 훨씬 빠르게 사실이다. 여기에 1M 요소 세트 모두의 타이밍이다 :

    1) 1) (integer) 14
       2) (integer) 1444165498
       3) (integer) 936762
       4) Complexity info: N:1000000,M:1000000
       5) 1) "ZUNIONSTORE"
          2) "temp3"
          3) "1"
          4) "temp1"
          5) "WEIGHTS"
          6) "1"
    2) 1) (integer) 13
       2) (integer) 1444165421
       3) (integer) 3166360
       4)
       5) 1) "evalsha"
          2) "48286113cfe4b389d516e98646e5f4e086decc34"
          3) "2"
          4) "temp1"
          5) "temp2"
          6) "0"
    
  2. ==============================

    2.내가 가진 생각이 다른 데이터 구조, 즉 쿼드 트리를 사용하는 것입니다 그래서, 더 효율적으로 쿼리의 동일한 유형을 달성했다. https://gist.github.com/itamarhaber/c1ffda42d86b314ea701 : 당신은에서 "객체 지향"루아로 만든 내 작은 POC (해시에서 레디 스 쿼드 트리)를 볼 수 있습니다

    내가 가진 생각이 다른 데이터 구조, 즉 쿼드 트리를 사용하는 것입니다 그래서, 더 효율적으로 쿼리의 동일한 유형을 달성했다. https://gist.github.com/itamarhaber/c1ffda42d86b314ea701 : 당신은에서 "객체 지향"루아로 만든 내 작은 POC (해시에서 레디 스 쿼드 트리)를 볼 수 있습니다

    참고 :이시와 레디 스 개발자의 날 전후 매우 흥미로운 토론을 촉발 것을 알아야한다. 중간 결과는 새로운 색인 페이지 있지만 가까운 장래에 레디 스 가능성이 사용하는 N 차원 색인 사소한 것보다 높은 수준의 API를 추가 할 수 있습니다.

  3. from https://stackoverflow.com/questions/32911604/intersection-of-two-or-more-sorted-sets by cc-by-sa and MIT license