2017-12-21 3 views
0

Redis 클러스터의 특정 키 클래스를 계산하는 효율적인 방법이 있습니까?Redis : Redis 클러스터의 특정 키 클래스 수를 계산 하시겠습니까?

여기서 '특정 키 클래스'는 공통 목적으로 사용되는 키를 의미합니다. 예를 들어, 세션 키. 그들은 공통 키 이름 접두어를 가질 수 있습니다. 여러 개의 클래스가있을 수 있습니다. 이제부터는 키 클래스를 간단히 키라고 부릅니다.

  • 레디 스 클러스터를 사용해야합니다 다음과 같이

    는 내가하고 싶은 것입니다.

  • 키는 Redis 클러스터의 노드에 배포되어야합니다.
  • Redis 클러스터의 모든 노드에서 키 수를 계산하는 효율적인 방법이 있어야합니다.
  • 키는 TTL을 가질 수 있습니다. 즉, 만료 될 수 있습니다.
  • Redis 클러스터의 노드 수를 런타임에 변경할 수 있으며 해시 슬롯을 재배포 할 수 있습니다.
  • 클라이언트는 Node.js를 사용하여 구현됩니다.

설명서를 읽었지만 적절한 해결책을 찾을 수 없습니다.

미리 감사드립니다.

답변

1

아니요, 기본적으로. "클래식"(비 클러스터)에도 해당되지 않습니다. 추가 저장 메커니즘없이이를 수행하려면 SCAN을 반복적으로 사용해야 전체 키 공간을 반복 할 수 있습니다. 다행스럽게도 필터를 수락하기 때문에 모든 키를 가져올 필요가 없지만 효율적이지 않습니다. 일반적으로 운영 기능이 아닌 리뷰 기능으로 정기적으로이 작업을 수행합니다. 우리는 실제로 "opserver"의 redis 플러그인에 그러한 기능을 포함시킵니다.

클러스터로 전환 할 때 각 복제 세로 집합 중 하나에서이 작업을 반복해야합니다. 일반적으로 CLUSTER 명령을 사용하여 해당 목록을 얻으므로 노드의 동적 인 특성은 중요하지 않습니다.

클래식 및 클러스터의 경우 마스터가 아닌 복제본에서만이 작업을 수행하는 것이 좋습니다. 다시 말하지만, 시스템의 일상적인 부분이 아닌 관리 도구로서 만 사용하십시오.

KEYS을 사용하면 안됩니다. 선호 : SCAN.