认识
2025年01月06日
一、认识
在需要实时更新的排行榜,如游戏得分榜等。我们可以使用 Redis
的 有序集合 Sorted Set
功能。
二、语法
使用 Redis
的有序集合(ZSET
)存储数据,通过 ZINCRBY
增加分数,并使用 ZRANGE
按分数获取排名。
const incrementScore = async (userId, score) => {
await redisClient.zIncrBy('leaderboard', score, userId);
};
const getLeaderboard = async (topN) => {
return await redisClient.zRangeWithScores('leaderboard', -topN, -1, { REV: true });
};
// 调用示例
await incrementScore('user1', 10);
const leaderboard = await getLeaderboard(10); // 获取前 10 名
console.log(leaderboard);