0
간단한 테스트에서 나는 10k 개의 요소로 된 집합을 가지고 있습니다. 첫 번째 SetScan
커서가 0 커서를 사용하면 전체 집합과 다음 커서가 여러 요소를 반환하고 다른 커서는 정확히 동일한 결과와 커서를 반환한다는 것을 알게되었습니다. 아래StackExchange.Redis SetScan은 모든 집합 멤버를 반환합니다.
코드는 무한 루프에 영향을주지 않는 페이지 크기를 변화
var cursor = 0L;
do
{
var result = redis.SetScan("key", cursor: cursor, pageSize: 100);
set.AddRange(result);
cursor = ((IScanningCursor)result).Cursor;
} while (cursor > 0);
에서 실행됩니다.
괜찮습니다. 하지만 난 아직도 내 예제 코드가 제대로 작동하지 않는 이유를 모르겠다. 코드에 문제가 있습니까? – drgraduss
반환 된 커서가 전달 된 커서와 같으면 SetScan이 수행됩니다. 결과에서 반복자를 제한하지 않으므로 첫 번째 호출은 항상 모든 요소를 반환하므로 루프가 필요하지 않습니다. set.AddRange (result); 이터레이터 (결과)가 전체 세트를 가져 오는 데 필요한 모든 Redis 호출을 수행하게합니다. –