Redis에서 해시, 목록, 집합 및 정렬된 집합과 같은 문자열이 아닌 큰 개체를 삭제하면 상당한 시간 동안 서버가 차단되어 클라이언트 측 시간 초과와 같은 문제가 발생할 수 있습니다. 이는 Redisworks 방식의 두 가지 측면 때문입니다.
-
Redis는 단일 스레드입니다. 즉, 연결한 클라이언트 수에 관계없이 한 번에 하나의 명령만 처리할 수 있습니다. 명령을 실행하는 데 시간이 오래 걸리면 다른 모든 명령은 기다려야 합니다.
-
DEL
O(n)
입니다. 해시, 목록, 집합 및 정렬된 집합에 대한 작업. 즉, 100만 개의 요소가 있는 개체는 100개의 요소가 있는 동일한 유형의 유사한 개체보다 삭제하는 데 약 10,000배 더 오래 걸립니다.
다행히 Redis는 오랜 시간 동안 서버를 차단하지 않고 큰 개체를 삭제하는 데 사용할 수 있는 몇 가지 도구를 제공합니다. 여기에서 솔루션을 컴파일했습니다.
- 큰 해시 삭제
- 큰 목록 삭제
- 대규모 세트 삭제
- 대규모 정렬 세트 삭제