redis集合应用场景

发布时间2022-10-17 22:35:01Redis64人已围观

简介 redis集合都是应用哪些场景呢?

redis集合应用场景


1、在微博应用中,可以将一个用户所有的关注人存在一个集合中,将其所有粉丝存在一个集合。


2、Redis还为集合提供了求交集、并集、差集等操作,可以非常方便的实现如共同关注、共同喜好、二度好友等功能,对上面的所有集合操作,你还可以使用不同的命令选择将结果返回给客户端还是存集到一个新的集合中。


3、Set是集合,是String类型的无序集合,set是通过hashtable实现的,概念和数学中个的集合基本类似,可以交集,并集,差集等等,set中的元素是没有顺序的。

场景1:抽奖,将参与者全部放入,活动id=>[uid,...]

场景2:微博点赞,朋友圈点赞


当前我的博客文章浏览量统计也是用的redis集合

实现过程:

a.将每个文章id作为一个集合保存

b.进入浏览的ip作为value

c.当用户再次进入或刷新的时候,判断当前文章id中是否存在用户的ip,如果存在就不会新增浏览量,反之增加1个浏览量

集合保存结果比如:

[
    article_1=>['127.0.0.1','127.0.0.2','127.0.0.3'],
    article_2=>['127.0.0.1','127.0.0.2'],
    article_3=>['127.0.0.1','127.0.0.2','127.0.0.3','127.0.0.5'],
    ...
]

# 例如有个ip为127.0.0.1的用户来浏览文章id为1的文章
$ex = $redis->sismember("article_1","127.0.0.1");//存在返回true,不存在返回false
if(!$ex){
    //如果不存在就记录当前ip
    $redis->sAdd("article_1","127.0.0.1");
    //然后操作数据库给文章id为1的浏览量+1
}

如果需要更加精准的浏览量,可以通过ip段来保存,只统计前两个或前三个ip段统计,看自己需求!


赞一个! (3)

文章评论