利用Redis的有序集合做购物车商品相关性分析

来源:互联网 发布:wince同步软件 win7 编辑:程序博客网 时间:2024/05/17 21:55

本文所指的“商品的相关性”,就是依据与某个商品同时出现在购物车中次数最多的商品。

实际应用场景有:
1. 在某一商品的detail页面,推荐给用户与该商品相关的N个商品;
2. 在添加购物车成功页面,当用户把一个商品添加到购物车,推荐给用户N个与之相关的商品;
3. 在货架上将相关性比较高的几个商品摆放在一起;

利用Redis的有序集合做法如下:

每种商品构建一个有序集合,集合的成员为和该商品同时出现在购物车中的商品,成员的 score 为同时出现的次数。

每次 P_A P_B 商品同时出现在购物车中时候,分别更新 Redis P_A P_B 对应的有序集合,

zincrby shopcart:product:P_A 1 P_B
zincrby shopcart:product:P_B 1 P_A

使它们同时出现在购物车中的次数 +1

假设实际场景如下步骤:

第一步: milk egg 同时出现在购物车中,那么更新这两个商品对应的有序集合:

redis127.0.0.1:6379> zincrby shopcart:product:milk 1 egg
"1"
redis127.0.0.1:6379> zincrby shopcart:product:egg 1 milk
"1"

此时,这两个产品的有序集合为:

redis127.0.0.1:6379> zrevrange shopcart:product:milk 0 -1
1)"egg"
redis127.0.0.1:6379> zrevrange shopcart:product:egg 0 -1
1) "milk"

第二步: milk bread 同时出现在购物车中,那么更新这两个商品对应的有序集合:

redis127.0.0.1:6379> zincrby shopcart:product:milk 1 bread
"1"
redis127.0.0.1:6379> zincrby shopcart:product:bread 1 milk
"1"
redis127.0.0.1:6379>

此时,这两个产品的有序集合为:

redis127.0.0.1:6379> zrevrange shopcart:product:milk 0 -1
1)"egg"
2)"bread"
redis127.0.0.1:6379> zrevrange shopcart:product:bread 0 -1
1)"milk"

第三步: milk bread 又一次同时出现在购物车中:

redis127.0.0.1:6379> zincrby shopcart:product:milk 1 bread
"2"
redis127.0.0.1:6379> zincrby shopcart:product:bread 1 milk
"2"

此时,这两个产品的有序集合为:

redis127.0.0.1:6379> zrevrange shopcart:product:milk 0 -1
1)"bread"
2)"egg"
redis127.0.0.1:6379> zrevrange shopcart:product:bread 0 -1
1)"milk"

此时可以看到,与 milk 同时出现在购物车中次数最多的商品为 bread;

第四步:。。。。

实际使用的场景:根据一个商品 P_A Redis 中该商品的有序集合 shopcart:product:P_A 中根据 SCORE 值降序排列,获取到与之最相关的 N 个商品,在货架上将这 N 个商品与 P_A 同时摆放,或者,在用户购买 P_A 时,将这 N 个商品推荐给用户。

zrevrange shopcart:product:P_A 0 N-1

 

http://www.tuicool.com/articles/eueyi2

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 考试抄答案被老师发现怎么办 孩子撒谎不写作业怎么办 小学生做题容易马虎出错怎么办 小学生做题老是马虎怎么办 小学生做题马虎不认真怎么办 会做的题总做错怎么办 孩子数学做题粗心怎么办 孩子成绩考差了怎么办 孩子静不下心学习怎么办 孩子考试时总是粗心马虎怎么办 小学二年级学生厌学怎么办 三岁宝宝肚脐痛怎么办 做题速度太慢怎么办 孩子做题不动脑不会转弯怎么办? 孩子做题总是马虎怎么办 孩子做题总是眼高手低怎么办 小孩说幼儿园老师不喜欢他怎么办 初中学生了不喜欢读书怎么办 小孩吐怎么办给揉哪里 8岁了不爱写字怎么办呢 8岁了不会写字怎么办呢 高考做题时犯各种粗心错误怎么办 孩子做题不认真读题怎么办 孩子不爱学习怎么办有什么办法 小孩字写的不好怎么办 孩子的字写得丑怎么办 一年级孩子生字默不出来怎么办 5岁宝宝不爱写字怎么办 三年级小孩不自觉做作业怎么办 一年级的孩子不爱写字怎么办 一年级孩子不爱写作业怎么办 一年级的小孩不爱写字怎么办 小孩儿写字做作业磨蹭怎么办 孩子不学习成绩差不写作业怎么办 儿童4岁不会写字怎么办 小孩读中班还不会写字怎么办 幼儿园中班孩子不写字怎么办 小孩吃多了呕吐怎么办 一岁宝宝老便秘怎么办 4周岁半幼儿便秘怎么办 没胃口不能吃辣怎么办