/
SwiftfeetStallion
/
Homeworks
Обзор
Документация
Войти
/
SwiftfeetStallion
/
Homeworks
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Redis/src/GameManager.py
31 строка
1 KB
SwiftfeetStallion
upload files
15 апр 2025, 14:29
15 апр 2025, 14:29
5e5f9c4
Код
Авторство
О чём код?
from rediscluster import RedisCluster class GameManager: def __init__(self): self.start_nodes = [ {"host": "127.0.0.1", "port": "7000"}, {"host": "172.0.0.1", "port": "7001"}, {"host": "127.0.0.1", "port": "7002"}, ] self.n = 10 self.cluster = RedisCluster(startup_nodes=self.start_nodes, decode_responses=True, skip_full_coverage_check=True) def add_player(self, player, score): self.cluster.zadd("leaderboard", {player : score}) pos = self.cluster.zrevrank("leaderboard", player) print(f'Current {player} position is {pos + 1}') print(f'Top {self.n} players:') items = self.cluster.zrange("leaderboard", 0, self.n - 1, desc=True, withscores=True) for idx, item in enumerate(items): print(f"{idx + 1}) {item[0]} with score {item[1]}") def update_player(self, player, score): self.add_player(player, score) def get_top_players(self, num): items = self.cluster.zrange("leaderboard", 0, num - 1, desc=True, withscores=True) for idx, item in enumerate(items): print(f"{idx + 1}) {item[0]} with score {item[1]}") if not(len(items)): print('Leaderboard is empty :(')