@Override
public List<Map<String, Object>> redisTop(String level) {
Set<ZSetOperations.TypedTuple<Object>> scores = redisTemplate.opsForZSet().rangeWithScores("top" + level, 0, 9);
if (CollectionUtils.isEmpty(scores)) {
QueryWrapper<ClockUser> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("level", level);
queryWrapper.orderByAsc("final_clock_time");
List<ClockUser> clockUsers = list(queryWrapper);
System.out.println("------>" + clockUsers.size());
if (!CollectionUtils.isEmpty(clockUsers)) {
clockUsers.forEach(clockUser -> {
String name = clockUser.getNickname();
String openid = clockUser.getOpenid();
LocalDateTime finalClockTime = clockUser.getFinalClockTime();
// 毫秒 秒数 最后的打卡时间转化为毫秒数
long second = finalC
利用redis的ZSet实现排行榜,积分相同根据时间,时间越早的越靠前
最新推荐文章于 2024-07-23 14:34:52 发布
本文介绍如何使用Redis的有序集合ZSet来创建积分排行榜。当积分相同的情况下,依据时间戳,时间越早的排名越靠前。通过Java操作Redis,实现高效的数据存储和查询。
摘要由CSDN通过智能技术生成