당신은 정렬 된 집합 A를 redis로 가지고 있으며, 새 요소를 추가 할 때마다 순위별로 정렬됩니다. 당신은 또한 다음 20 초 말할 이상이 있었다 집합 A의 원소가 있는지 확인하는 방법이 있나요 소트 세트 B.Redis의 시간 소인 별 이전 요소 관리 정렬 된 집합
를 가지고 있고,이 검사 때문에 소트 세트의 B
로 이동 작업이 매우 빈번하게 수행되고 목록이 매우 커질 수 있습니다. 집합의 모든 요소를 반복하는 것은 좋은 해결책이 아닙니다. 가장 빠른 것이 필요합니다.
감사합니다.
업데이트 : 기본적으로 생각한 것은 상대방이 경기 요청을했을 때 상대방과 일치하는 게임 서버가 있다고 상상해보십시오. 현재의 디자인은 모든 요청이 세트에 도착하고 순위/점수가 플레이어 순위입니다. 그래서 목록에서 서로 가까이있는 2 명의 플레이어가 모두 완벽하게 일치합니다. 매 5 초마다 스크립트 get이 호출되어 set의 맨 위에서 50 개의 행을 가져오고 2와 2를 일치시킵니다 (그리고 제거합니다). 이것은 잘 작동하고 있었고 매우 빠른 작업 솔루션이라고 생각합니다. 그러나 Bot (AI) 플레이어를 만드는 아이디어가 나왔습니다. 그래서 선수가 대기 시간이 너무 길 때 봇 (AI) 플레이어와 일치하게됩니다. 그리고 나는 "누가 너무 오랫동안 기다리고 있는지"볼 수있는 방법을 알아낼 수 없습니다. 기본적으로 전체 아이디어가 잘못되었습니다. 그래서 더 좋은 아이디어는 환영합니다. :) 고마워요.
당신은 타임 스탬프와 함께 요소를 점수로 저장할 수있는 보조 정렬 집합을 사용할 수 있습니다. – akonsu
내가 타임 스탬프를 점수로 사용할 수 있을지 모르겠다. 다른 점수에 사용 된 점수. 더 많은 정보로 게시물을 업데이트했습니다. 감사! –
나는 기존의 것 외에 다른 순서 집합을 만들고, 타임 스탬프를 점수로 사용하도록 제안하고 있습니다. – akonsu