내 데이터가 'lst'목록에 다시 저장되었습니다.redis에 저장된 목록에서 데이터를 인쇄하는 방법은 무엇입니까?
나는
for i in range(0,r_server.llen('lst')):
print ??????
내가 루프 무엇에 쓰는가 목록의 모든 요소를 인쇄 할 수 있나요?
내 데이터가 'lst'목록에 다시 저장되었습니다.redis에 저장된 목록에서 데이터를 인쇄하는 방법은 무엇입니까?
나는
for i in range(0,r_server.llen('lst')):
print ??????
내가 루프 무엇에 쓰는가 목록의 모든 요소를 인쇄 할 수 있나요?
접근 방법은 유효하지만 효과가 없습니다. 불필요한 요청을 많이하므로 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
의 순환 목록 패턴이나 동시성 고려 사항이 있거나없는 사본을 사용하는 것이 좋습니다.