此案例是一個推薦商品的小demo,用redis的sortset 結(jié)構(gòu)速种,
- key 為當(dāng)前購買的商品
- score 為和當(dāng)前購買的其他商品數(shù)量 incrby 增加1姜盈, (這個商品和此商品一起合買的次數(shù)越多低千,分?jǐn)?shù)越高,越會被推薦)
- value 為otherProduct
代碼清單:
/**
* 繼續(xù)購買商品(多個商品需要循環(huán)處理馏颂,相互加分)
* @param productId 當(dāng)前購買的商品
* @param otherProdeuctId 當(dāng)前和productId 一起購買的其他商品
*/
public void continuePurchase(long productId, long otherProdeuctId){
jedis.zincrby("continue_purchase_products::" + productId,1 ,
String.valueOf(otherProdeuctId));
}
- 當(dāng)需要推薦其他人購買過的其他商品的時候按照分?jǐn)?shù)取出即可
/**
* 推薦其他人購買過的其他商品
* @param productId
* @return
*/
public Set<Tuple> getRecommendProducts(long productId){
return jedis.zrevrangeWithScores("continue_purchase_products::" + productId,0,2);
}
非常巧妙的一個小方式 解決了小型系統(tǒng)的推薦問題