扫码关注官方订阅号
系统推荐算法:根据每个人的规则,需要进行随机推荐,并且每次推荐的都不一样,如何实现?redis, mysql ?
欢迎选择我的课程,让我们一起见证您的进步~~
推荐使用Redis实现,用hash类型的key-value标记已推荐的商品,下次推荐结果在Redis进行比较,未推荐的通过并标记。
Hash性能要远高于SQL检索,故选择Redis,请求时间可以降到ms个位数,部署到专用的Redis服务器,可以不占用mysql负载,目前的最佳选择。
当然redis首选
不清楚你的具体使用场景,建议一种使用方式 可以使用redis的集合,随机从集合里取你的推荐就好然后把取到数据从集合里删除掉,以保不会重复推荐
如果不是巨量数据,可以设计一个结构来达到你需要的功能:一个推荐人和已推荐关系的表,需要有的东西:推荐人,推荐id
随机推荐不是问题,自己弄个算法(查找order by rand()的替换算法)查出来满足条数的推荐就好-无非是排除前次推荐的东西(已经有表记录了)。
所以只需要记录上次找个人推荐的id就可以了。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
推荐使用Redis实现,用hash类型的key-value标记已推荐的商品,下次推荐结果在Redis进行比较,未推荐的通过并标记。
Hash性能要远高于SQL检索,故选择Redis,请求时间可以降到ms个位数,部署到专用的Redis服务器,可以不占用mysql负载,目前的最佳选择。
当然redis首选
不清楚你的具体使用场景,建议一种使用方式
可以使用redis的集合,随机从集合里取你的推荐就好
然后把取到数据从集合里删除掉,以保不会重复推荐
如果不是巨量数据,可以设计一个结构来达到你需要的功能:
一个推荐人和已推荐关系的表,
需要有的东西:推荐人,推荐id
随机推荐不是问题,自己弄个算法(查找order by rand()的替换算法)查出来满足条数的推荐就好-无非是排除前次推荐的东西(已经有表记录了)。
所以只需要记录上次找个人推荐的id就可以了。