// 示例代码
$user_id = 123; // 用户ID
$product_id = 456; // 产品ID
// 将购买记录添加到有序集合中
$redis->zadd("user:$user_id:purchases", time(), $product_id);
// 示例代码
$user_id = 123; // 用户ID
// 获取该用户的购买记录
$purchases = $redis->zrange("user:$user_id:purchases", 0, -1);
// 遍历所有用户
foreach ($redis->keys("user:*:purchases") as $key) {
if ($key != "user:$user_id:purchases") {
$other_user_id = substr($key, 5, -10);
// 获取另一个用户的购买记录
$other_purchases = $redis->zrange($key, 0, -1);
// 计算两个用户之间的相似度
$similarity = cosine_similarity($purchases, $other_purchases);
// 将相似度存储到 Redis 中
$redis->zadd("user:$user_id:similarities", $similarity, $other_user_id);
}
}
// 示例代码
$user_id = 123; // 用户ID
// 获取与该用户相似的用户列表
$similar_users = $redis->zrevrange("user:$user_id:similarities", 0, -1);
// 遍历与该用户相似的用户
foreach ($similar_users as $similar_user_id) {
// 获取相似用户的购买记录
$similar_purchases = $redis->zrange("user:$similar_user_id:purchases", 0, -1);
// 计算相似用户购买过但该用户未购买的产品
$recommendations = array_diff($similar_purchases, $purchases);
// 将推荐结果存储到 Redis 中
foreach ($recommendations as $product_id) {
$redis->zadd("user:$user_id:recommendations", $similarity, $product_id);
}
}
// 示例代码
$user_id = 123; // 用户ID
// 获取该用户的推荐结果
$recommendations = $redis->zrevrange("user:$user_id:recommendations", 0, -1);
// 展示推荐结果给用户
foreach ($recommendations as $product_id) {
$product = get_product($product_id); // 获取产品信息
echo $product['name'] . "<br>";
}