zoukankan      html  css  js  c++  java
  • 使用Redis有序集合实现投票排行榜系统

    https://mp.weixin.qq.com/s/GcPF8jte8Nzi4Ae0jojXuQ

    先说最简单的排行榜。其实之前我们有个用于投票的系统,但是他没有用有序集合,他是这样做的:用redis最基本的 key-value结构中记录票数, key是选项, value是票数,然后每个月的后三天不能再进行投票,因为需要一个定时任务,将票数统计出来持久存储,作为本月的排行榜。可以看到有好多缺点:第一不能实时计算榜单,只能每个月跑脚本最后计算出来;第二每个月都有几天用户不能投票,损失一大波流量;第三只能支持月榜。排行榜场景用了Redis而没用 ZSet挺遗憾的。

    那我们在系统中设计了多个周期的排行榜,有小时榜、日榜、周榜、月榜、总榜。解释一下 小时榜就是所有列表成员,在一个小时内获取票数的排行榜,其他榜单以此类推。

    能做到不同排行榜主要是在于ZSet的 key的设置,一个 key就是一个排行榜,向不同 keymemberscore进行增加,ZSet会帮助我们进行排序,而我们只需要调用 ZRANGE或者 ZREVRANGE即可返回排行榜。

  • 相关阅读:
    js中this的用法
    js原型链与继承(初体验)
    关于C语言指针中的p++与p+i
    react todolist
    react表单提交
    react条件渲染
    react初体验
    初次接触express
    阿里内推在线编程题(返回元素的选择器)
    模块初始化
  • 原文地址:https://www.cnblogs.com/rsapaper/p/13405878.html
Copyright © 2011-2022 走看看