• 排行榜功能redis实现设想


    最近接到一个需求,用户可以进行某种设计,然后发表收取点赞,需要做排行榜,基本需求如下
    (1)排行榜按照点赞数量倒序排列,分页获取,每页20条
    (2)用户可以点赞和取消点赞,需要记录用户和记录的点赞关系(已点赞/未点赞)
    (3)排行榜和点赞数量会很大,假设排行榜有1万条数据,每条数据又1万个点赞,总共1亿条数据
     
    然后有了如下设想
    (1)用redis有序集合保存排行榜,分数就是设计的点赞数
    分页获取排行榜和点赞数:【ZREVRANGE  key start stop WITHSCORES】获取排行榜就用分数倒序排列,获取start到top条数据,可以满足分页需求
    获取排行榜设计总数:【zcard key】
    新增设计到排行榜:【ZADD key scroe member 】加入设计id和对应的点赞数(默认为0)到排行榜有序集合中
    从排行榜删除设计:【ZREM key member1】从排行榜有序集合中删除设计id
    点赞和取消点赞操作:【ZINCREBY key increment member】ZINCRBY命令可以增加一个元素的分数,当分数为负数时,表示减分,返回值是更改后的分数
     
    (2)用redis集合保存设计点赞人
    点赞操作:【SADD key member 】加入用户的手机唯一标识(或者用户id)到set中
    取消点赞操作:【SREM key member 】从set中删除用户的手机唯一标识(或者用户id)
    判断用户是否进行过点赞:【SISMEMBER key member】判断用户手机唯一标识(或者用户id)是否在集合中
     
  • 相关阅读:
    Oracle 查询表空间容量脚本
    C#保留小数位的方法集合
    asp.net c# 去掉字符串中重复项并将结果遍历出来算法
    汇总sql server数据库所有表名、列数、行数
    Web表单设计之注册表单
    精简高效的CSS命名准则和方法
    MSSQL查看和解除表锁
    XML通用操作类
    Ajax学习笔记一(xmlHttpRequest对象)
    SQL Server无法生成FRunCM线程|FRunCM 线程|FRunCM
  • 原文地址:https://www.cnblogs.com/liutengfei/p/6700001.html
Copyright © 2020-2023  润新知