[REDIS] 레디 스의 리더를위한 유일한 득점
REDIS레디 스의 리더를위한 유일한 득점
내가 리더를 만드는 레디 스를 사용하고 동일한 높은 점수를 달성하는 선수를 다루는 좋은 방법 알아 내려고 노력하고 있어요 (같은 높은 점수를 가진 선수는 먼저 높은 점수를 달성하는 사람들에 의해 주문해야합니다)
나는 다음과 같은 일을 생각했다 ...
zadd leaderboard highscore.timestamp player_id.attempt_number
내가 할 때, 타임 스탬프 분명히 잘못된 순서로 진행된다 zrevrange.
예 입력 :
zadd leaderboard 20.123 5.1
zadd leaderboard 20.125 5.2
zadd leaderboard 20.012 5.3
zadd leaderboard 21.024 5.4
산출:
zrevrange leaderboard 0 -1
5.4
5.2
5.1
5.3
원하는 출력 :
5.4
5.3
5.1
5.2
해결법
-
==============================
1.. 하나의 옵션은 zadd 리더 최고 점수 (로부터 Long.MAX_VALUE - 타임 스탬프)을 수행하는 것입니다 player_id.attempt_number을 (변경로부터 Long.MAX_VALUE 무엇에 타임 스탬프에 대한 합리적인 가장 높은 값 - A는 64 비트 INT가의 3 억에 대한 년의 가치를 저장합니다 서명 밀리 초, 그 힘이 필요하지 않도록)
. 하나의 옵션은 zadd 리더 최고 점수 (로부터 Long.MAX_VALUE - 타임 스탬프)을 수행하는 것입니다 player_id.attempt_number을 (변경로부터 Long.MAX_VALUE 무엇에 타임 스탬프에 대한 합리적인 가장 높은 값 - A는 64 비트 INT가의 3 억에 대한 년의 가치를 저장합니다 서명 밀리 초, 그 힘이 필요하지 않도록)
편집 : 앞에 0을 추가하는 것을 잊지 마세요 :)
from https://stackoverflow.com/questions/15348426/unique-scoring-for-redis-leaderboard by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 동시에 여러 프로그램 레디 스 동작은 읽기 / 일을 같은 해시 키 델 (0) | 2020.01.21 |
---|---|
[REDIS] 레디 스 키에 대한 액세스를 차단 (ServiceStack) (0) | 2020.01.21 |
[REDIS] 파이프 라인 배수로 ServiceStack를 사용하여 레디 스에 명령을 읽는 방법 (0) | 2020.01.21 |
[REDIS] 우리는 hiredis에 의해 레디 스에서 키의 값으로 C의 int 배열을 설정할 수 있습니까? (0) | 2020.01.21 |
[REDIS] 어떻게 루아 스크립트의 한계에서 레디 스 호출을 피하기 위해? (0) | 2020.01.21 |