排行榜设计

CREATE TABLE `t_daka_rank` (`id` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,`consumer_id` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,`ranking` int DEFAULT NULL COMMENT '排名',`rank_status` int DEFAULT NULL COMMENT '与昨天比的名次变化',`create_time` datetime DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='大咖排名记录';

排名规则

​ 用户得分做去重排序、每个用户的得分与排序名次对应,确保同分时,排名相同。

名次变化计算方式

​ 根据上次排名、与这次的排名进行比较,1为上升1名,0为不变,-1为下降1名

ps: 值得注意的是,如果排名不做实时的,那么新加入的用户会暂时没有排名、名次等信息,直到生成下次排名。

数据存储

​ mysql记录每次排名生成的数据(如上面的表设计)

​ redis保存各个用户的id、与之对应的排名、名次,用于业务查询。

遇到的问题

​ 当把LocalDateTime 类型的字段保存到redis,再取出来的时候会报序列化错误. 这是由于redis序列化的方式,和我们取出来反序列化的方式不一致产生的。

​ 解决方式:加注解

@JsonDeserialize(using = LocalDateTimeDeserializer.class)@JsonSerialize(using = LocalDateTimeSerializer.class)private LocalDateTime createTime;

排行榜设计(mysql)相关推荐

  1. 移动互联网实战--社交游戏的排行榜设计和实现(2)

    前言: 游戏领域, 特别是移动端的社交类游戏, 排行榜成为了一种增强体验交互, 提高用户粘性的大法宝. 这边讲述在不同用户规模下, 游戏服务化/游戏平台化趋势下, 如何去设计和实现游戏排名榜. 本文侧 ...

  2. Redis积分排行榜设计与实现第二篇

    前言 在上一篇,讨论了积分排行榜基于mysql的实现方案,并且在文章的末尾我们抛出了一个问题,就是当用户量越来越大的时候,性能的问题将会成为此功能的瓶颈,因此需要寻找更好的解决方案 在Redis中,提 ...

  3. 基于ssm老街坊网站、购物网站的实现与设计mysql

    原文链接:请点这里 项目描述 本系统实现了基于ssm老街坊网站.购物网站的实现与设计mysql的基本功能,主要功能如下. 技术支持 eclipse.SSH.Jdk1.8.jsp. mysql 系统提供 ...

  4. 设计mysql表实现 好友列表、昵称设置、好友分组

    今天在实现功能时遇到设计mysql表格实现 好友列表,本来感觉好友之间关系互相关联不好设计,后来把思路理清后实现了此功能,包括好友列表.昵称设置.好友分组,基本可以满足各个项目中关于好友列表设计的需求 ...

  5. java 美发管理系统_基于安卓Android潮流美发系统APP设计(MySQL)

    基于安卓Android潮流美发系统APP设计(MySQL)(任务书,开题报告,中期检查表,文献综述,外文翻译,毕业论文16000字,程序代码,MySQL数据库) 本应用主要用于对手机上网用户,在线预约 ...

  6. java 仿qq mysql_基于Java远程通信(仿QQ)及应用研究设计(MySQL)(含录像)

    基于JAVA远程通信(仿QQ)及应用研究设计(MySQL)(含录像)(毕业论文13000字,程序代码,MySQL数据库) 随着信息社会脚步的日益加快,远程通信的应用正在人们的生产生活中扮演着极其重要的 ...

  7. 基于Redis的排行榜设计和实现

    基于redis的排行榜设计和实现 一.场景介绍 二.案例设计 1.有序集合命令语法 2.终端测试 1). 添加成绩记录 2).第一次top3查询 3).更新分数 4).再次top-3查询 三.代码示例 ...

  8. 汽车租赁系统java基于数据库_基于数据库和JAVA的网上汽车租赁管理系统的设计(MySQL)...

    基于数据库和JAVA的网上汽车租赁管理系统的设计(MySQL)(论文11000字,程序代码,MySQL数据库) 摘要:本文用JAVA编程语言为主体,用JDBC连接MySQL数据库来设计和实现这个系统. ...

  9. Redis实现排行榜设计

    Redis实现排行榜设计 redis的zset结构有着天然的排序功能,十分适合并发量大的排行功能.通过key值确定排行榜的范围,使用members来作为排序的标识,score作为排序的依据.redis ...

最新文章

  1. 神经架构搜索在视频理解中研究进展的综述
  2. linux谁动了我的服务器,linux系统监控之谁动了我的服务器?
  3. Atlas Unknown Error
  4. From AlphaGo Zero to 2048论文分享
  5. 多层数组如何遍历_带你从零学大数据系列之Java篇---第五章:数组
  6. Bundler和Minifier Visual Studio扩展
  7. Kotlin学习笔记23 协程part3 lambda表达式深入 挂起函数 全局协程
  8. opencv 叠加文字_opencv 图像上添加文字
  9. [LOJ 6485]LJJ 学二项式定理
  10. 5个必看的Docker视频
  11. cef 前进后台 实现_使用CefSharp前端后台交换
  12. 用DW编写网页--个人简历
  13. Tomcat任意文件读取 文件包含漏洞复现(CVE-2020-1938/CNVD-2020-10487)
  14. The BTest labyrinth
  15. ffmepg 视频添加水印 —— 筑梦之路
  16. lightdm开机无法自启问题
  17. 现货、期货、期权、权证
  18. sql语句(基础篇)
  19. 四大门户免费企业邮箱用户端基础参数对比
  20. 编写爬取糗事百科信息爬虫代码学习笔记

热门文章

  1. FileUpload控件的配置
  2. Xcode Command Line Tools命令
  3. 做了一个噩梦,梦见你离开,我从哭泣中醒来
  4. 唯一客服系统(独立部署无限多开)-知识库ChatGPT-支持微信公众号小程序-钉钉-PC和H5全渠道客服系统...
  5. 【知识分享】儿童编程学习规划(Scratch/Python/C++)
  6. PHP利用ImageMagick把PDF转成PNG
  7. 我带你去哪里 VII
  8. c++ primer需要全看完吗_你家的门窗需要“换”吗?看完这几点再决定
  9. 【100%通过率】华为OD机试真题 Python 实现【最多获得的短信条数】【2022.11 Q4 新题】
  10. Flutter如何实现下拉刷新和上拉加载更多,阿里巴巴android开发手册