Sorted Set 和 Set 同樣,也是 String 類型的集合,且成員惟一。不一樣的是 Sorted Set
會關聯一個 double
類型的 score
(分數),用於進行排序。
成員是惟一的,可是score
能夠重複,若是score
重複,會使用字典排序。
最大的成員數爲 232 - 1 個元素(40多億)。php
將用戶與分數(遊戲分數、考試成績、點贊數)進行關聯,而後進行排序。html
將任務分爲不一樣的等級,例如重要爲2,不重要爲1,根據優先級安排任務。redis
<?php include 'redis.php'; $redis = getRedis(); $redisKey = 'name_scorted_set'; $redis->zAdd($redisKey, 78, 'tom', 78, 'jerry');// 添加成員 echo $redis->zCard($redisKey) . '<br />';// 獲取成員數 2 $redis->zIncrBy($redisKey, 2, 'jerry');// 對指定值進行增量 print_r($redis->zRange($redisKey, 0, -1));// 獲取指定索引區間的值,從小到大,示例爲獲取全部值 Array ( [0] => tom [1] => jerry ) echo '<br />'; print_r($redis->zRevRange($redisKey, 0, -1));// 獲取指定索引區間的值,從大到小,示例爲獲取全部值 Array ( [0] => jerry [1] => tom ) echo '<br />'; echo $redis->zScore($redisKey, 'jerry') . '<br />';// 獲取指定值的分數 80 echo $redis->zCount($redisKey, 70, 79) . '<br />';// 獲取指定分數指定區間的數量 1 print_r($redis->zRangeByScore($redisKey, 70, 80));// 獲取指定分數間的數據,從小到大 Array ( [0] => tom [1] => jerry ) echo '<br />'; print_r($redis->zRevRangeByScore($redisKey, 80, 70));// 獲取指定分數間的數據,從大到小 Array ( [0] => jerry [1] => tom ) echo '<br />'; echo $redis->zRank($redisKey, 'jerry') . '<br />';// 獲取指定值的索引,從小到大 1 echo $redis->zRevRank($redisKey, 'jerry') . '<br />';// 獲取指定值的索引,從大到小 0 $redis->zAdd($redisKey, 56, 'emma'); $redis->zRem($redisKey, 'tom');// 移除指定值 print_r($redis->zRange($redisKey, 0, -1));// Array ( [0] => emma [1] => jerry ) echo '<br />'; $redis->zRemRangeByRank($redisKey, 1, 2);// 移除指定排名區間的成員 print_r($redis->zRange($redisKey, 0, -1));// Array ( [0] => emma ) echo '<br />'; $redis->zAdd($redisKey, 38, 'tom', 98, 'jerry'); $redis->zRemRangeByScore($redisKey, 30, 60);// 移除指定分數區間的成員 print_r($redis->zRange($redisKey, 0, -1));// Array ( [0] => jerry ) echo '<br />';
參考資料:菜鳥教程。code