总排行榜和周排行榜优化

背景

由于历史数据积累,kd消费表的数据已经十分之庞大,之前生成排行榜的操作是,后台任务每隔一小时,自动查询数据库的数据,然后生成数据

查询user_count表中的数据来生成总的排行榜,前100位

查询detail_kd表中的数据,来生成最近1周内消费kd,前100位 user_id

查询detail_charm表中的数据,来生成最近1周内获得魅力值的前100位user_id

显然这是一个不太现实而又实现了的功能,那么现在问题来了,线上由于数据量十分的大,频繁导致数据库宕机。

需要解决的问题

最近七天的数据如何存储

如何对数据排序,找出周内消费的前100名

解决方案

user:kd:stat:{userId} // redis hash date => count

user:rank:week:kd // redis zset count => user_id

user:rank:total:kd // redis zset count => user_id

user:charm:stat:{userId} // redis hash date => count

user:rank:week:charm // redis zset count => user_id

user:rank:total:charm // redis zset count => user_id

业务逻辑

kd消费统计维度每天

$redis->hincrby(user:kd:stat:{userId}, date(), kd) 增加每天的消费kd数

$redis->zincrby(user:rank:total:kd, userId) 增加总的kd数

$redis->zincrby(user:rank:week:kd, userId) 增加每week的kd数据

设置周榜缓存时间7天

数据初始化

需要脚本 生成对应的数据,对于每一个用户的数据都需要生成

以时间为分界线,当时间大于凌晨是,无缝切换为新的数据格式

方案一相对成本要高些,需要维护周内的数据,对于数据库的操作也很频繁,需要对每个用户进行遍历数据

方案二只有用户消费才会粗发,相对简单些,对服务器也没有那么大的压力

php排行榜代码,优化排行榜相关推荐

  1. LCHub中国低代码平台排行榜

    LCHub低代码平台排行榜是低代码平台流行趋势的一个指标,每月更新,这份排行榜排名基于互联网有经验的程序员.课程和第三方厂商的数量.排名使用著名的搜索引擎(诸如百度.搜狗.360搜索.百科.Youku ...

  2. html中怎么写排行榜,div css列表布局排行榜代码

    特效描述:div css列表布局 排行榜代码.div css列表布局排行榜代码 代码结构 1. 引入CSS 2. HTML代码 问问专家 问问专家 在社区问问最专业的知识贡献用户 委婉小小 闻道有先后 ...

  3. QQ玩一玩好友排行榜与世界排行榜

    QQ玩一玩好友排行榜与世界排行榜 文章目录 1.开发环境 2.常见问题 3.实现好友排行榜 3.1 错误码列表 3.2 支持两种特性 3.3 成绩数据上报 3.4 何时上报玩家成绩 3.5 拉取排行榜 ...

  4. 台式计算机2017排行分析,最新台式电脑排行_2017联想台式电脑排行榜 联想台式电脑排行榜前10...

    2017联想台式电脑排行榜 联想台式电脑排行榜前10 JPG,558x351,231KB,398_250 2014最新台式电脑品牌排行榜 JPG,500x316,232KB,396_250 2016最 ...

  5. 游戏中排行榜代码实现

    游戏设计中常常使用排行榜,根据排行发送排名奖励. 排行容器的组成 记录排行的容器是一个由内部由vector和map组成的模板类 1.1.容器为什么这么设计 1.1.1vector部分的结构 其中vec ...

  6. 外贸CRM软件排行榜:优化客户关系管理,跟进客户并提升销售业绩

    在外贸行业中,建立良好的客户关系和有效地跟进客户是取得成功的关键.为了更好地管理客户关系并提升销售业绩,外贸企业越来越多地依赖于CRM(客户关系管理)软件.然而,市场上存在各种不同的外贸CRM软件选择 ...

  7. python代码编辑器排行榜-4款好用的Python编辑器,你用过几个?

    [芝麻IP代理]Python语言有一个特点就是不特别强势,可是它能够使用都非常的多范畴,并且效率高的可怕,Python的使用范畴非常多,现在国内越来越多的人学习Python,从最开始遇到IP被封导致没 ...

  8. 邀请人数排行榜代码 php,成功邀请好友人数排行榜.PDF

    成功邀请好友人数排行榜 成功邀请好友人数排行榜 姓名 手机号 成功邀请人数 排名 成功邀请排名奖励 李希风 13703****4262 120 第一名 188 叶小钢 15070****2467 11 ...

  9. python代码编辑器排行榜-写 Python 哪个编辑器 / IDE 最好用?

    不请自来嘻嘻,简单介绍一下几款好用的编写器,希望对你有帮助- 1.IDLE IDLE是开发 python 程序的基本IDE(集成开发环境),具备基本的IDE的功能,是非商业Python开发的不错的选择 ...

最新文章

  1. 计算机组成原理-第一章
  2. 适用于OpenGL离屏渲染上下文的初始化代码
  3. 理解VMware虚拟网络
  4. 解决margin-top没有效果
  5. java中的Native方法
  6. QT,C++最好的调试工具(抽象定义上的工具)
  7. 建议收藏!最新的(2019年)电子/计算机领域SCI期刊影响因子大全
  8. PHP代码优化的细节
  9. dom jaxp详解
  10. Memcache监控小工具stats命令
  11. C# NPOI(xlsx相关操作)
  12. HDU2078 复习时间【水题】
  13. spring源码解析(一)---占位符解析替换
  14. 调用登录接口返回“参数错误”
  15. matlab 离散点求导_如何用matlab求离散型数值的导数
  16. D3D9 3D渲染图像变模糊
  17. opcode php 缓存,深入理解PHP Opcode缓存原理
  18. 基于android的单词记忆英语考试系统app
  19. 【UNR #1】合唱队形
  20. Python学习D-1

热门文章

  1. java10 var关键字浅析
  2. GraphViz 使用教程-用代码生成有向图。并介绍流程图、时序图等绘图工具
  3. matlab 代码 位图矢量化,性能 – matlab代码的矢量化
  4. 一个程序员如何快速下载软件方法总结
  5. 三极管和场效应管的区别
  6. 计算机页面格式,计算机基础教案 word排版(三)页面格式设置.doc
  7. 成都拓嘉启远:拼多多一件代发主要优势
  8. mplayer 绿色版 可注册为服务(windows)
  9. 写一篇不正经的随笔(括弧笑)
  10. python 汽车行业数据库_python 实现汽车之家车型数据爬虫