推荐商品

此案例是一个推荐商品的小demo,用redis的sortset 结构,

  • key 为当前购买的商品
  • score 为和当前购买的其他商品数量 incrby 增加1, (这个商品和此商品一起合买的次数越多,分数越高,越会被推荐)
  • value 为otherProduct
    代码清单:
  /**
     * 继续购买商品(多个商品需要循环处理,相互加分)
     * @param productId 当前购买的商品
     * @param otherProdeuctId 当前和productId 一起购买的其他商品
     */
    public void continuePurchase(long productId, long otherProdeuctId){
        jedis.zincrby("continue_purchase_products::" + productId,1 ,
                String.valueOf(otherProdeuctId));
    }
  • 当需要推荐其他人购买过的其他商品的时候按照分数取出即可
 /**
     * 推荐其他人购买过的其他商品
     * @param productId
     * @return
     */
    public Set<Tuple> getRecommendProducts(long productId){
        return jedis.zrevrangeWithScores("continue_purchase_products::" + productId,0,2);
    }

非常巧妙的一个小方式 解决了小型系统的推荐问题

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。