0
큰 항목 (예 : 10K 항목)을 Redis에서 유지하는 가장 좋은 방법은 키로 항목을 효율적으로 검색하는 것입니다.REDIS : 임의 액세스 권한이있는 목록
Redis는 이것을 달성하는 Java의 OrderedHashMap과 동일한 데이터 구조가 없으므로 세트와 목록을 유지 관리하고 동기화 상태를 유지해야 할 수도 있습니다.
큰 항목 (예 : 10K 항목)을 Redis에서 유지하는 가장 좋은 방법은 키로 항목을 효율적으로 검색하는 것입니다.REDIS : 임의 액세스 권한이있는 목록
Redis는 이것을 달성하는 Java의 OrderedHashMap과 동일한 데이터 구조가 없으므로 세트와 목록을 유지 관리하고 동기화 상태를 유지해야 할 수도 있습니다.
정렬 된 집합을 사용하십시오.
일부 북마크 추가; 시간 순으로 정렬 score
의 현재 시간을 사용
> zrevrange bookmarks 3 3
> "bk3"
:
> zrank bookmarks "bk3"
> "3"
가 ... 다음 인덱스로 책갈피를 당겨 :
> zadd bookmarks 123 "bk1"
> zadd bookmarks 456 "bk2"
> zadd bookmarks 789 "bk3"
> zadd bookmarks 999 "bk4"
을 책갈피를 얻으려면, 먼저 인덱스를 필요
타임 스탬프를 사용하지 않으려는 경우 점수에 "1"을 사용하여 사전 식 사전을 정렬 할 수 있습니다.
> zadd bookmarks 1 "link_xyz"
> zadd bookmarks 1 "link_abc"
> zadd bookmarks 1 "link_foo"
> zrange bookmarks 0 -1
1) "link_abc"
2) "link_foo"
3) "link_xyz"
색인 조회는 O(log(n))
이고 색인에 따라 단일 구성원을 가져 오려면 O(log(n)+1)
에 추가하십시오. 목록의 경우 O(n)
이상이어야합니다.
또한 동일한 책갈피를 두 번 추가하면 자동으로 이전 구성원이 대체되므로 중복을 피할 수 있습니다.
희망 하시겠습니까?
무엇을 하시겠습니까? – raffian
한 가지 예가 북마크와 비슷합니다. 나는 사용자의 북마크 목록을 유지하려고하지만 동시에 사용자가 이전에 특정 항목을 북마크에 추가했는지 여부를 감지합니다. 일반 목록을 사용하면 해당 검사는 O (N) 작업이됩니다. – mahemoff