当前位置:首页 > 问答 > 正文

用Redis取值挖掘隐藏的宝藏,数据其实没那么难搞懂

(引用来源:微信公众号“码农翻身”文章《用Redis这把钥匙,打开数据宝藏的大门》)

你有没有想过,你每天用的手机App,比如点外卖、刷短视频、网上购物,背后时时刻刻都在产生海量的数据?这些数据就像一堆堆刚挖出来的矿石,看起来杂乱无章,但里面可能藏着巨大的宝藏,比如哪些商品最受欢迎、用户最喜欢在什么时间段活跃、什么样的促销活动最有效等等,怎么把这些“矿石”炼成宝贝呢?很多人一听到“数据分析”、“大数据”这些词就觉得头大,感觉那是特别专业、特别复杂的事情,需要一堆看不懂的软件和公式,事情可能没你想的那么难,今天我们就用一个叫Redis的工具,来看看数据挖掘可以多么“接地气”。

Redis是什么?你可以把它想象成一个超级快的“临时记事本”,它主要把数据存放在服务器的内存里,所以读写速度飞快,比从硬盘上读写的传统数据库(比如MySQL)要快得多,它的主要任务不是像保险柜一样长期、安全地存东西,而是像你的电脑内存一样,处理那些需要瞬间完成的事情,双十一的时候,你要抢购一个特价商品,库存数量需要被瞬间查询和扣减,这个任务交给Redis就再合适不过了。

(引用来源:Redis官方文档关于数据结构的介绍)

Redis这个“快”的特点,怎么帮助我们挖掘数据宝藏呢?秘诀就在于它提供的几种简单又灵活的数据结构,别被“数据结构”这个词吓到,它们其实就是Redis这个“记事本”里不同的记录方式,每一种都特别适合记录特定类型的信息。

用Redis取值挖掘隐藏的宝藏,数据其实没那么难搞懂

第一种,字符串(String),这是最简单的一种,就是一个键对应一个值,我们可以用它来记录网站的总访问人数,每次有一个新用户访问,我们就给这个值加1,你想看总人数是多少?直接问Redis拿这个键的值就行了,瞬间得到答案,这就像你在小黑板上用“正”字计票,一目了然。

第二种,哈希(Hash),这个特别有用,它像一个档案袋,一个键(档案袋编号)里面可以装很多个字段和值(比如姓名、年龄、性别),我们要记录一个用户的基本信息,如果用字符串,可能需要存成“用户ID:姓名”、“用户ID:年龄”好几个键,很麻烦,但用哈希,一个用户ID对应一个档案袋,里面整齐地放着姓名、年龄、性别等字段,当你需要全面了解一个用户时,一次性就把整个档案袋拿出来,非常方便整理和查询。

第三种,集合(Set),它的特点是里面的元素都是唯一的,不会重复,而且没有顺序,这能帮我们解决什么问题呢?一个经典的例子是“共同好友”,用户A的好友列表是一个集合,用户B的好友列表是另一个集合,我想知道A和B有哪些共同好友,Redis直接提供了一个命令,可以瞬间求出两个集合的交集,这在社交推荐里非常实用。

第四种,有序集合(Sorted Set),这是Redis的王牌功能之一,它和集合类似,也是元素不重复,但每个元素都有一个分数(score)来排序,这简直就是为“排行榜”量身定做的!我们要做一个“热门文章排行榜”,可以把文章ID作为元素,把文章的阅读量、点赞数或者一个综合热度值作为分数,Redis会自动根据分数从高到低排序,你想看Top 10的热文?一个命令,结果立刻就出来了,又快又准。

用Redis取值挖掘隐藏的宝藏,数据其实没那么难搞懂

(引用来源:CSDN博客文章《Redis在实时数据分析中的典型应用场景》)

有了这些得力的“记录工具”,我们就可以开始“挖宝”了,举个例子,一个电商网站可以用Redis来做很多事情:

实时监控:用字符串记录网站实时在线人数、秒杀商品的库存,老板想随时看一眼当前业务状况,数据是即时的,不是几分钟前的“过期”数据。

用户行为追踪:用户每点击一个商品,我们就用有序集合给这个商品的分数(热度)加一分,一天下来,哪个商品被点击最多,排行榜一清二楚,市场部门就知道该主推什么了。

用Redis取值挖掘隐藏的宝藏,数据其实没那么难搞懂

个性化推荐:用户浏览和购买了什么商品,我们都用集合记录下来,当这个用户再次登录时,我们可以计算“买了这个商品的人也买了什么”的集合交集,快速给他生成推荐列表,提升购买转化率。

发现热点话题:在社交App里,用有序集合来记录不同话题标签的讨论热度,哪个话题的分数增长最快,说明它正在成为热点,运营人员可以马上跟进。

你看,我们并没有使用什么高深莫测的算法模型,只是巧妙地运用了Redis提供的几种“记事”方法,把日常产生的数据用最合适的形式记录下来,然后通过简单的查询和计算,就能让数据开口说话,告诉我们很多有价值的洞见,数据不再是躺在数据库里沉睡的数字,而是变成了能指导我们行动的“宝藏”。

Redis也不是万能的,它主要解决的是实时性和高性能读取的问题,适合做数据的“加工车间”和“展示窗口”,那些需要永久保存、进行非常复杂关联分析的数据,最终还是要落到传统数据库或者专业的数据仓库里,但Redis无疑是在数据和业务洞察之间搭建了一座极佳的桥梁,它让我们能以很低的理解成本,快速地从数据中获得第一手的价值。

下次当你再听到“数据挖掘”时,可以先别急着觉得它很难,不妨想想Redis这个好用的工具,想想怎么像用记事本一样,把数据有条理地记下来,然后再去问问它们能告诉你什么故事,你会发现,数据其实没那么难搞懂,宝藏的钥匙,可能就握在你手中。