美文网首页
Redis实战笔记-文章投票系统

Redis实战笔记-文章投票系统

作者: Captain_tu | 来源:发表于2019-03-27 14:08 被阅读0次
  1. 发布文章
    incr articleId 获取新的递增的文章id,
    hmset article:id 将文章详情设置到hash中
    sadd voted:id posterId 将发布文章的用户Id放入到已投票的集合中
    zadd time: now article:id 将文章的Id加入到按时间排序的有序集合中,分值为【当前时间戳】
    zadd score: now+BASE_VOTE_SCORE article:id 将文章加入到按分值排序的有序集合中,分值为【当前时间戳+投票数*每票的分数】,这样能够做到最新的文章的基础分数比历史文章高,排名能更靠前。

  2. 文章分组
    sadd group:groupName articleId 将文章加入到groupName组中
    srem group:groupName articleId 将文章从groupName组中删除
    smove group:groupName1 groupName2 articleId 将文章从groupName1移动到groupName2

  3. 文章投票
    sadd voted:articleId userId 将投票用户id加入到已投票的集合中,如果返回0,说明该用户已经为该文章投过票了,下边的操作不继续进行
    zscore time: article:articleId 获取被投票文章的发布时间,如果发布时间早于规定时间,不允许投票,下边操作不继续进行
    hincr article:articleId votes 将文章详情的votes加一
    zincrby score: articleId BASE_VOTE_SCORE 给排行榜的文章加基础投票分

  4. 前端显示
    zrevrange time: 0 10 按时间排序,获取第一页(前10条)的文章Id
    zrevrange score: 0 10 按投票数排序,获取第一页(前10条)的文章Id
    zinterstore time:groupName 2 group:groupName time: aggregate max 将分组groupName的文章按时间排序存入到time:groupName有序集合中
    zinterstore score:groupName 2 group:groupName score: aggregate max 将分组groupName的文章按评分排序,存入到score:groupName有序集合中
    zrevrange time:groupName 0 10 按时间顺序,获取第一页(前10条)文章Id
    zrevrange score:groupName 0 10 按分数顺序,获取第一页(前10)的文章Id
    hgetall article:articleId 循环获取上边获取的文章详情

相关文章

  • Redis实战笔记-文章投票系统

    发布文章incr articleId 获取新的递增的文章id,hmset article:id 将文章详情设置到...

  • Redis第三天

    基于Redis设计的投票网站实战

  • Redis实战--文章投票功能redis实现

    1.特性 速度非常快的非关系型数据库 可以存储键与5种不同类型的值之间的映射 可以将内存中键值对数据持久化到硬盘 ...

  • 读书笔记

    《系统之美》 《重构》 《Redis 实战》 《Effective Java》 《Spring Boot实战》 《...

  • Redis In Action:文章投票

    1. 投票规则 一个用户对一篇文章只能投一票 一篇文章发布 7 天后不能再进行投票 文章得分计算规则:得票数*43...

  • ssm(Spring、Springmvc、Mybatis)实战之

    文章大纲 一、课程介绍二、Redis基础实战三、Redis之高可用、集群、云平台搭建实战四、淘淘商城Jedis整合...

  • Redis线程那些事

    本文作为学习笔记,文章内容来自“极客时间”专栏《Redis核心技术与实战》,如有侵权,请告知,必即时删除。 Red...

  • 针对Redis内存碎片以及缓冲区溢出的优化

    本文作为学习笔记,文章内容来自“极客时间”专栏《Redis核心技术与实战》,如有侵权,请告知,必即时删除。 1、内...

  • Redis缓存淘汰策略

    本文作为学习笔记,文章内容来自“极客时间”专栏《Redis核心技术与实战》,如有侵权,请告知,必即时删除。 1、淘...

  • Redis切片集群

    本文作为学习笔记,文章内容来自“极客时间”专栏《Redis核心技术与实战》,如有侵权,请告知,必即时删除。 切片集...

网友评论

      本文标题:Redis实战笔记-文章投票系统

      本文链接:https://www.haomeiwen.com/subject/extzvqtx.html