내 장고 웹 앱에 리더 보드를 구현하고 있으며이를 수행하는 가장 좋은 방법을 모릅니다.웹 리더 보드
성능 충격적인 : 현재, 나는 단지에서 내 사용자를 주문 SQL을 사용하고있어, a는 리더, 그러나,이 두 가지 문제를 야기합니다. 몇 백 명의 사용자에게만 확장을 시도했지만 순위를 계산하는 속도가 느리고 과도한 캐싱은 사용자가 리더 보드에 추가 된 후 순위를 확인해야하므로 짜증나게합니다.
전체 리더 보드 계산을 다시 수행하지 않으면 사용자에게 어떤 위치에 있는지 거의 알려지지 않습니다.
나는 배치하지 않았지만 리더 보드 대 95 % (아마도 실제로는 더 많음)의 리더 보드에 대한 업데이트가 약 5 %로 추산됩니다. 따라서 최근 아이디어는 사용자가 추가 될 때마다 리더 보드를 다시 계산하고 위치 필드를 쉽게 정렬 할 수 있으므로 사용자의 순위를 표시하기 위해 다시 계산할 필요가 없습니다.
그러나 여러 사용자가 동시에 커밋하는 경우 잠금이 충분하거나 순위가 올리면 문제가 될 수 있습니까? 또한이 리더 보드 전용으로 별도의 데이터베이스에 배치 할 계획입니다. 내가 redis에 대한 좋은 것들을 듣고 ...
이 문제를 해결하는 더 좋은 방법? (아무도 SO가 리더 보드를 만드는 방법을 알고 있습니까?)
감사합니다. , 내가 Redis에 대해 더 읽었을 때, 나는 그것이 내 문제에 대해 완벽하게 조정 된 것처럼 보였습니다. – paddymelon