2015-01-15 5 views

답변

5

접근 방법은 유효하지만 효과가 없습니다. 불필요한 요청을 많이하므로 CPU, 대역폭 및 시간이 낭비됩니다. lst N 개의 요소가있는 경우 루프를 다시 실행하려면 N + 1 개의 호출이 필요하며 N 개의 호출은 복잡도가 O (N) 인 LINDEX이됩니다. 함께이 일을, 그러나,

l = redis_server.lrange('lst', 0, -1) 
for x in l: 
    print x 

참고 :

레디 스는 likeso, 당신은 기본적으로 단일 호출로 레디 스에 대한 모든 호출을 대체 할 수 LRANGE 명령, 그래서 할 수있는 더 좋은 방법을 제공합니다 대용량 목록은 또한 Redy가 LRANGE 요청에 대한 응답을 준비하는 동안 (응답의 버퍼에 대해 메모리를 소비하는) Redis를 차단하므로 문제가됩니다. 이 경우 lst에있는 RPOPLPUSH의 순환 목록 패턴이나 동시성 고려 사항이 있거나없는 사본을 사용하는 것이 좋습니다.

관련 문제