舉個例子,假設我們有一個網站,有很多用戶發布內容并被其他用戶評分,我們需要對用戶的排名進行排序。這時候就可以使用
首先,我們需要確保每個用戶都有一個唯一的 ID 用來標識。我們可以使用
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->set('user:1:id', 1); // 第一個用戶的 id 為 1
$redis->set('user:2:id', 2); // 第二個用戶的 id 為 2
// 其他用戶的 id 以此類推
接著,我們用
$redis->zAdd('users_scores', 10, 1);
注意,第一個參數是
現在我們可以展示排行榜了。下面的代碼演示了如何獲取排名前十的用戶列表并展示他們的用戶名和得分:
$scores = $redis->zRevRange('users_scores', 0, 9, TRUE);
$user_ids = array_keys($scores);
$user_infos = array();
foreach ($user_ids as $user_id) {
$user_infos[] = array(
'id' => $user_id,
'name' => $redis->get("user:{$user_id}:name"),
'score' => $scores[$user_id]
);
}
foreach ($user_infos as $user_info) {
echo "{$user_info['name']} (id={$user_info['id']}) scored {$user_info['score']} points";
}
這個例子只是一個簡單的示范,但是我們可以看到,使用
但是我們也需要注意,
綜上所述,