PHP+Redis怎么实现点赞效果(php,redis,开发技术)

时间:2024-05-03 02:09:27 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    PHP%2BRedis%E6%80%8E%E4%B9%88%E5%AE%9E%E7%8E%B0%E7%82%B9%E8%B5%9E%E6%95%88%E6%9E%9C

设计功能前知识准备

  1.将要用到的redis数据类型(具体的类型说明,请看底部链接,有详细说明):

zset这个类型主要用来做排序或者数字的增减,这里被用作like 和hate的数字记录,以及热度的记录。

set 这个是无序集合,主要用来记录今天需不需要更新,将今天被点赞(包括点讨厌)过的文章id记录下来,方便晚上或者有时间对这部分数据更新。

hash 这个是散列,主要用来存储数据以及索引。这里被用来记录用户对哪个文章点了什么,方便下次判断(我看过一些网上的介绍使用set来记录,那个也可以,但是本人觉得这样做更省空间,以及方便管理,再有就是hash的速度快)。

list这个是队列大佬,我们的数据能不能安全回到mysql就靠它了。

  2.关于热度如何去判断:

  大家都知道,文章获得点赞数越高,文章的热度就越高,那么怎么判断呢?不就直接记录点赞数就行啦,但是对于最新的文章怎么办?例如有一篇文章一年前发布的,获得50个赞,有篇最新文章获得49个赞,但是按照上面所说的一年前的文章热度还比最新的高,这就不合理了,文章都是时效性,谁都想看最新最热的。

  so!我们要换个方法去处理这个时效性,绝大部分语言都有时间戳生成的方法,时间戳随着时间越新,数字越大,直接将时间戳初始化赋值给文章的score,这样最新的文章相比以前的文章就会靠前了。接着是点赞对score的影响,我们假设一天得到20个赞算是一天最热,一天60*60*24=86400秒,然后得到一个赞就是得到86400 / 20 = 4320分。具体数字看自己的业务需求定,我只是举例子而已。点hate当然也会减去相应的数字。

<?php


class Good

{
















}


//调用

$user_id = 100;

$type = 1;

$comment_id= 99;

$good = new Good();

$rel = $good->click($user_id,$type,$comment_id);

var_dump($rel);

本文:PHP+Redis怎么实现点赞效果的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Java,JavaScript和ABAP怎么取得调用栈Callstack下一篇:

13 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18