복붙노트

[REDIS] 어떻게 레디 스에서 HSCAN 명령을 사용 하는가?

REDIS

어떻게 레디 스에서 HSCAN 명령을 사용 하는가?

나는 내 임무에 레디 스의 HSCAN 명령을 사용하고 싶지만 나는 그것이 어떻게 작동하는지 모르겠어요. 이 명령에 대한 레디 스의 공식 페이지 (http://redis.io/commands/hscan은) 나에게 빈 페이지를 제공합니다.

나는 연속 입력 데이터를 얻고 레디 스에서 여러 해시 순간적를 저장하고 나는 시간 이후 시점에서 그들 모두를 반복 싶습니다하고있다.

내 데이터를 저장하기 위해 다음 명령을 사용하고 있습니다

HMSET myhash ordertype "neworder" order_ts "1234" act_type "order_ack" ack_ts "1240"
HMSET myhash2 ordertype "neworder" order_ts "2234" act_type "order_ack" ack_ts "2240"

사람이 나에게 HSCAN을 사용하는 방법에 대한 몇 가지 예제를 줄 수 있습니까?

내 경우에는 내가 다음과 같은 출력을 좀하고 싶습니다 1) myhash 2) myhash2 3) myhash3 . . . .

해결법

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

    1.명령

    명령

    전체 해시 스캔을 시작합니다 :

    HSCAN의 myhash 0

    와 패턴과 일치하는 필드 해시 스캔을 시작합니다 :

    HSCAN의 myhash 0 매치 order_ *

    필드는 패턴과 일치하고 더 많은 검색을 할 수있는 검사 명령을 강제로 해시 스캔을 시작합니다 :

    HSCAN의 myhash 0 MATCH order_ COUNT * 1,000

    노트

    MATCH 각 반복에 대한 어떤 요소에 작은 반환 할 수 잊지 마세요, 같은 문서에 설명 :

    그리고 당신은 COUNT를 사용할 수있는 이유의 각 반복에 대한 더 스캔을 강제로있다.

    [업데이트]으로 디디에 스페 치아 당신은 * SCAN 명령을 사용하는 레디 스 2.8 이상이 필요합니다, 지정했습니다.

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

    2.마찬가지로 당신이 언급. 당신은 해시 키의 출력을 얻을 필요

    마찬가지로 당신이 언급. 당신은 해시 키의 출력을 얻을 필요

    myhash
    myhash2
    myhash3
    

    HSCAN이 목적이 아니다. HSCAN는 특정 해시의 필드를 검사하는 것입니다. 그래서 당신은 myhash 또는 myhash2의 필드를 검색 할 수 있습니다. 당신이 패턴에 기초하여 키를 찾으려면하지만 당신은 두 가지 옵션이 있습니다.

    해시 키와 SET 만들기

    SADD hashkeys "myhash" "myhash1" "myhash2"
    
    SMEMBERS hashkeys
        1) "myhash"
        2) "myhash2"
        3) "myhash1"
    
    If you are using 2.8 I would recommend you use sscan instead of smembers
    
    sscan hashkeys 0 match my*
    

    USE ONLY SCAN COMMAND

    scan 0 MATCH myhash* count 1000 
    

    (가 레디 스 서버 차단 권장 NOT) USE 키 일치

    keys myhash*
    

    그래서 긴 이야기 인하 종류의 당신이 SMEMBERS, sscan을 또는 키를 사용하여 키를 가져올 수 있습니다. 당신은 레디 스 2.8을 사용하는 경우 최고의 당연히 sscan을이다

  3. from https://stackoverflow.com/questions/19910527/how-to-use-hscan-command-in-redis by cc-by-sa and MIT license