2011-11-13 5 views
0

Redis.ioLIST 대안

복잡도가 일정 시간 삽입 헤드 및 테일 근처 요소의 삭제에 대한 지원 인 시간의 관점에서 레디 스리스트의 주요 특징 심지어 많은 수백만 개의 삽입 된 항목이 있습니다. 요소에 액세스하면 매우 빠른 목록 의 극단 근처에 있지만, 당신이 그것을 는 O (N) 작업이기 때문에, 매우 큰 목록의 중간에 접근하려고하면 느립니다. 당신이 정말로 성능 문제를 타격하는 경우 데이터가 너무 높고 쓰기는 읽기보다 적은 경우

LIST 대안은 무엇인가가

+0

당신이 "너무 높은 FATA IA"무엇을 의미합니까? 목록 (llen)의 길이가 내가 3 유스 케이스 나는 우리가 별도의 카운터를 사용한다고 생각 – seppo0010

+0

는 ... 좋은 @ted –

답변

1

이하기 전에 내가 벤치 마크 확실히 좋겠 일이지만, 목록 중간에있는 항목에 액세스하는 경우 실제로 사용 사례에 따라 몇 가지 대안이 있습니다.

  1. 목록을 너무 크게 만들지 마십시오. 더 이상 중요하지 않은 부분을 노쇠/정리하십시오.
  2. 목록의 메모 섹션을 메모하십시오. 특정 페이지 매김 범위가 다른 것보다 훨씬 더 자주 요청되는 경우 자체 목록임을 확인하십시오. 이미 존재하는지 확인하고 페이지가 지정된 범위에 목록의 하위 집합을 만들지 않은지 확인합니다.
  3. 버킷 "관리 가능한 크기"(무엇에 대한 관리 가능한 당신의 정의는)으로 처음부터 당신의 목록입니다. 리스트가 순전히 부가적인 경우 (리스트에서 제거되지 않음), 아이템의 모듈러스 인덱스를 키의 일부로 사용하여리스트가 더 작은 버킷에 저장되도록 할 수 있습니다. 예 : 키 = "your_key_name_"+ 인덱스 % 100000
+0

방법,리스트의 길이를 알고있을 때 –

+0

를 사용한 경우보다 큰 10lacs –

+0

뭐죠 복제에 대해 보이는? 제 말은이 시나리오에서 유용하다는 것입니다. –