복붙노트

[REDIS] Predis에서 MATCH 옵션 SCAN을 사용하는 방법

REDIS

Predis에서 MATCH 옵션 SCAN을 사용하는 방법

나는 이전에 키가 내 레디 스 데이터베이스의 특정 패턴과 일치하는 키를 검색하는 명령을 사용했다. 대신 한 번에 전체 키 스페이스를 통해 스캔의 반복자를 반환하기 때문에 레디 스 2.8 이후, SCAN 명령 키보다 선호 될 것으로 보인다.

나는 SCAN 명령에 대한 PHP 반복자를 지원하도록되어 Predis> = 0.8.5을 사용하고 있습니다. 내가 어떻게 다음 키가의 SCAN 대응에 명령을 번역하는 방법 궁금하네요 그래서 Predis는, 많은 문서가 없습니다 :

$client->keys($pattern)

나는 다음을 시도했다 :

$client->scan('MATCH', $pattern);

어떤 작품의 어떤 -하지만 네이티브 PHP 반복자를 반환하지 않습니다. Predis '구축에 반복자 지원을 사용하기 정말 좋은 것입니다.

해결법

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

    1.나는 Predis 예제 디렉토리에 작업을 수행하는 방법을 발견했다.

    나는 Predis 예제 디렉토리에 작업을 수행하는 방법을 발견했다.

    데이터베이스에서 일치하는 키를 검색 할 SCAN을 사용하려면, 당신은 단순히 Predis \ 컬렉션 \ 반복자 \ KEYSPACE 클래스를 사용합니다 :

    use Predis\Collection\Iterator;
    
    $client = ...;
    $pattern = 'foo*';
    
    foreach (new Iterator\Keyspace($client, $pattern) as $key) {
        ...
    }
    

    분명히 Predis는 각 명령에 대한 Predis \ 컬렉션 \ 반복자의 반복자 클래스가 반환 반복자가 :

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

    2.어쩌면이 다른 Predis의 초보자를위한 도움이 될 것입니다 그리고 당신은 당신이 사용할 수있는 나 같은 PHP / MySQL의 배경에서오고있어 :

    어쩌면이 다른 Predis의 초보자를위한 도움이 될 것입니다 그리고 당신은 당신이 사용할 수있는 나 같은 PHP / MySQL의 배경에서오고있어 :

    foreach (new Iterator\HashKey($client, $pattern) as $index => $value) {
        ...
    }
    

    이전에 $ 클라이언트 -> hmset와 배열 데이터 세트 ($ 인덱스, $ 배열)을 생성합니다.

  3. from https://stackoverflow.com/questions/28545549/how-to-use-scan-with-the-match-option-in-predis by cc-by-sa and MIT license