2012-02-17 4 views
1

다음과 같은 방법으로 정렬 된 집합을 사용하고 있습니다.정렬 된 집합 [Redis]에서 동일한 점수를 가진 회원을 얻을 수 있습니까?

전화 번호가 포함 된 '사용 가능 : 전화 번호'라는 정상적인 세트가 있습니다. 이제 사용자가 가입한다고 말하면 'uid'라는 사용자 ID가 있습니다. 이 새로운 사용자는 'available : numbers'세트의 번호로 할당됩니다. 이 사용자 -> alloted_number 매핑을 저장할 수있는 사용자 해시가 있습니다. 문제는 동일한 사용자와 관련된 여러 개의 번호를 저장하는 방법입니다.

여기에 정렬 된 집합을 사용할 수 있는지 궁금합니다. POP를 'available : numbers'에서 POP하여 사용자의 'uid'인 점수와 함께 'used : numbers'라는 정렬 된 집합에 추가 할 수 있습니다. 점수는 고유 할 필요가 없으며 모든 구성원이 고유하기 때문에 완벽하게 보입니다. 제가 알고 싶은 것은 점수가 주어진 정렬 된 집합의 모든 구성원을 얻는 것이 가능하다는 것입니까? 나는 특정 'UID'에 속하는 모든 숫자를 꺼낼 수 아니면 그냥이 목적을 위해 소트 세트에 대해

감사

답변

2

을 잊지한다이 방법은 당신이 대신 각 사용자에 대한 설정을 유지하는 것이 좋습니다 수 있습니까? 따라서 :

available:numbers = {1, 2, 3, 4} 

user:numbers:UID1 = {5, 6} 
user:numbers:UID2 = {7} 

더 관리하기 쉽습니다. , 문서는 정말 최고 수준입니다

zrangebyscore user:numbers UID UID 

을 당신이 레디 스에서 사용할 수있는 모든 명령에 대한 문서를 읽어 제안 - 당신 : 말했다되고, 당신은 참으로 점수가 설정 한 정렬 ZRANGEBYSCORE 참조의 모든 구성원을 얻을 수 있습니다 (대부분의) 명령을 실전에서 시험해 볼 수 있습니다. 정말 대단합니다.

관련 문제