1. 程式人生 > >redis 在 php 中的應用(Sorted-set篇)

redis 在 php 中的應用(Sorted-set篇)

區間 arr 基數 計算 元素 store size count body

上一篇:redis 在 php 中的應用(Set篇)

本文為我閱讀了 redis參考手冊 之後編寫,註意 php_redis 和 redis-cli 的區別(主要是返回值類型和參數用法)

Redis 有序集合和集合一樣也是string類型元素的集合,且不允許重復的成員。

不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。

有序集合的成員是唯一的,但分數(score)卻可以重復。

集合是通過哈希表實現的,所以添加,刪除,查找的復雜度都是O(1)。

目錄:

Sorted-set(有序集合)
ZADD ZREM ZCARD ZCOUNT
ZSCORE ZINCRBY
ZRANGE ZREVRANGE ZRANGEBYSCORE ZREVRANGEBYSCORE ZREMRANGEBYSCORE ZINTER
ZUNION ZRANK ZREVRANK ZREMRANGEBYRANK

Sorted-set(有序集合)

1、ZADD

Redis Zadd 命令用於將一個或多個成員元素及其分數值加入到有序集當中。(分數值可以是整數值或雙精度浮點數。)

(1)如果某個成員已經是有序集的成員,那麽更新這個成員的分數值,並通過重新插入這個成員元素,來保證該成員在正確的位置上。

(2)如果有序集合 key 不存在,則創建一個空的有序集並執行 ZADD 操作。

(3)當 key 存在但不是有序集類型時,返回一個錯誤。

註意: 在 Redis 2.4 版本以前, ZADD 每次只能添加一個元素。

語法:

redis 127.0.0.1:6379> ZADD KEY_NAME SCORE1 VALUE1.. SCOREN VALUEN

返回值: 被成功添加的新成員的數量,不包括那些被更新的、已經存在的成員。

可用版本:>= 1.2.0

時間復雜度:O(M*log(N)),N是有序集的基數,M為成功添加的新成員的數量。

具體實例:

<?php
$redis = new redis();
$redis -> connect(‘127.0.0.1‘,6379);
$redis -> flushAll(); $redis -> zAdd(‘myset‘,0,‘hello‘); $redis -> zAdd(‘myset‘,1,‘world‘); $redis -> zAdd(‘myset‘,1,‘foo‘); // 集合中的元素唯一,但是分數可以重復 $redis -> zAdd(‘myset‘,2,‘hi‘); $redis -> zAdd(‘myset‘,2.5,‘welcome‘); var_dump($redis -> zRange(‘myset‘,0,-1,‘withScores‘)); //array (size=5) // ‘hello‘ => float 0 // ‘foo‘ => float 1 // ‘world‘ => float 1 // ‘hi‘ => float 2 // ‘welcome‘ => float 2.5 $redis -> zAdd(‘myset‘,3,‘hi‘); // hi 已經是 myset 的成員,此時更新分數值並重新插入這個成員元素 var_dump($redis -> zRange(‘myset‘,0,-1,‘withScores‘)); //array (size=5) // ‘hello‘ => float 0 // ‘foo‘ => float 1 // ‘world‘ => float 1 // ‘welcome‘ => float 2.5 // ‘hi‘ => float 3

2、ZREM

Redis Zrem 命令用於移除有序集中的一個或多個成員,不存在的成員將被忽略

當 key 存在但不是有序集類型時,返回一個錯誤。

註意: 在 Redis 2.4 版本以前, ZREM 每次只能刪除一個元素。

語法:

redis 127.0.0.1:6379> ZREM key member

返回值: 被成功移除的成員的數量,不包括被忽略的成員。

可用版本:>= 1.2.0

時間復雜度:O(M*log(N)),N為有序集的基數,M為被成功移除的成員的數量。

具體實例:

<?php
$redis = new redis();
$redis -> connect(‘127.0.0.1‘,6379);
$redis -> flushAll();

$redis -> zAdd(‘myset‘,0,‘hello‘);
$redis -> zAdd(‘myset‘,1,‘world‘);
$redis -> zAdd(‘myset‘,1,‘foo‘);      //  集合中的元素唯一,但是分數可以重復
$redis -> zAdd(‘myset‘,2,‘hi‘);
$redis -> zAdd(‘myset‘,2.5,‘welcome‘);

$redis ->zRem(‘myset‘,‘hi‘);          // 一處集合中的某個元素
var_dump($redis -> zRange(‘myset‘,0,-1,‘withScores‘));
//array (size=4)
//  ‘hello‘ => float 0
//  ‘foo‘ => float 1
//  ‘world‘ => float 1
//  ‘welcome‘ => float 2.5

3、ZCARD

Redis Zcard 命令用於計算集合中元素的數量。

語法:

redis 127.0.0.1:6379> ZCARD KEY_NAME

返回值: 當 key 存在且是有序集類型時,返回有序集的基數。 當 key 不存在時,返回 0 。

可用版本:>= 1.2.0

時間復雜度:O(1)

具體實例:

<?php
$redis = new redis();
$redis -> connect(‘127.0.0.1‘,6379);
$redis -> flushAll();

$redis -> zAdd(‘myset‘,0,‘hello‘);
$redis -> zAdd(‘myset‘,1,‘world‘);
$redis -> zAdd(‘myset‘,1,‘foo‘);      //  集合中的元素唯一,但是分數可以重復
$redis -> zAdd(‘myset‘,2,‘hi‘);
$redis -> zAdd(‘myset‘,2.5,‘welcome‘);

var_dump($redis ->zCard(‘myset‘));          // int 5

4、ZCOUNT

Redis Zcount 命令用於計算有序集合中指定分數區間的成員數量。

語法:

redis 127.0.0.1:6379> ZCOUNT key min max

返回值: 分數值在 min 和 max 之間的成員的數量。

可用版本:>= 2.0.0

時間復雜度:O(log(N)+M),N為有序集的基數,M為值在minmax之間的元素的數量。

具體實例:

<?php
$redis = new redis();
$redis -> connect(‘127.0.0.1‘,6379);
$redis -> flushAll();

$redis -> zAdd(‘myset‘,0,‘hello‘);
$redis -> zAdd(‘myset‘,1,‘world‘);
$redis -> zAdd(‘myset‘,1,‘foo‘);      //  集合中的元素唯一,但是分數可以重復
$redis -> zAdd(‘myset‘,2,‘hi‘);
$redis -> zAdd(‘myset‘,2.5,‘welcome‘);
$redis -> zAdd(‘myset‘,3,‘score‘);

// 1分到3分之間的值有5個
var_dump($redis ->zCount(‘myset‘,1,3));          // int 5

5、ZSCORE

Redis Zscore 命令返回有序集中,成員的分數值。 如果成員元素不是有序集 key 的成員,或 key 不存在,返回 nil 。

語法:

redis 127.0.0.1:6379> ZSCORE key member

返回值: 成員的分數值,以字符串形式表示。

可用版本:>= 1.2.0

時間復雜度:O(1)

具體實例:

<?php
$redis = new redis();
$redis -> connect(‘127.0.0.1‘,6379);
$redis -> flushAll();

$redis -> zAdd(‘myset‘,0,‘hello‘);
$redis -> zAdd(‘myset‘,1,‘world‘);
$redis -> zAdd(‘myset‘,1,‘foo‘);      //  集合中的元素唯一,但是分數可以重復
$redis -> zAdd(‘myset‘,2,‘hi‘);
$redis -> zAdd(‘myset‘,2.5,‘welcome‘);
$redis -> zAdd(‘myset‘,3,‘score‘);

// 返回 foo 的分數值
var_dump($redis ->zScore(‘myset‘,‘foo‘));          // float 1

6、ZINCRBY

Redis Zincrby 命令對有序集合中指定成員的分數加上增量 increment(分數值可以是整數值或雙精度浮點數。)

(1)可以通過傳遞一個負數值 increment ,讓分數減去相應的值,比如 ZINCRBY key -5 member ,就是讓 member 的 score 值減去 5 。

(2)當 key 不存在,或分數不是 key 的成員時, ZINCRBY key increment member 等同於 ZADD key increment member 。

(3)當 key 不是有序集類型時,返回一個錯誤。

語法:

redis 127.0.0.1:6379> ZINCRBY key increment member

返回值: member 成員的新分數值,以字符串形式表示。

可用版本:>= 1.2.0

時間復雜度:O(log(N))具體實例:

具體實例:

<?php
$redis = new redis();
$redis -> connect(‘127.0.0.1‘,6379);
$redis -> flushAll();

$redis -> zAdd(‘myset‘,0,‘hello‘);
$redis -> zAdd(‘myset‘,1,‘world‘);
$redis -> zAdd(‘myset‘,1,‘foo‘);      //  集合中的元素唯一,但是分數可以重復
$redis -> zAdd(‘myset‘,2,‘hi‘);
$redis -> zAdd(‘myset‘,2.5,‘welcome‘);
$redis -> zAdd(‘myset‘,3,‘score‘);

// 將 world 的分數增加0.6
var_dump($redis ->zIncrBy(‘myset‘,0.6,‘world‘));          // float 1.6

// 將 score 的分減去1.2
var_dump($redis ->zIncrBy(‘myset‘,-1.2,‘score‘));          // float 1.8

7、ZRANGE

Redis Zrange 返回有序集中,指定區間內的成員。(其中成員的位置按分數值遞增(從小到大)來排序。具有相同分數值的成員按字典序(lexicographical order )來排列。)

如果你需要成員按值遞減(從大到小)來排列,請使用 ZREVRANGE 命令。

下標參數 start 和 stop 都以 0 為底,也就是說,以 0 表示有序集第一個成員,以 1 表示有序集第二個成員,以此類推。

你也可以使用負數下標,以 -1 表示最後一個成員, -2 表示倒數第二個成員,以此類推。

語法:

redis 127.0.0.1:6379> ZRANGE key start stop [WITHSCORES]

返回值:指定區間內,帶有分數值(可選)的有序集成員的列表。

可用版本:>= 1.2.0

時間復雜度:O(log(N)+M),N為有序集的基數,而M為結果集的基數。

具體實例:

<?php
$redis = new redis();
$redis -> connect(‘127.0.0.1‘,6379);
$redis -> flushAll();

$redis -> zAdd(‘myset‘,0,‘hello‘);
$redis -> zAdd(‘myset‘,1,‘world‘);
$redis -> zAdd(‘myset‘,1,‘foo‘);      //  集合中的元素唯一,但是分數可以重復
$redis -> zAdd(‘myset‘,2,‘hi‘);
$redis -> zAdd(‘myset‘,2.5,‘welcome‘);
$redis -> zAdd(‘myset‘,3,‘score‘);

var_dump($redis ->zRange(‘myset‘,0,-1,‘withScore‘));
//array (size=6)
//  ‘hello‘ => float 0
//  ‘foo‘ => float 1
//  ‘world‘ => float 1
//  ‘hi‘ => float 2
//  ‘welcome‘ => float 2.5
//  ‘score‘ => float 3

8、ZREVRANGE

Redis Zrevrange 命令返回有序集中,指定區間內的成員

其中成員的位置按分數值遞減(從大到小)來排列。

具有相同分數值的成員按字典序的逆序(reverse lexicographical order)排列。

除了成員按分數值遞減的次序排列這一點外, ZREVRANGE 命令的其他方面和 ZRANGE 命令一樣。

語法:

redis 127.0.0.1:6379> ZREVRANGE key start stop [WITHSCORES]

返回值:指定區間內,帶有分數值(可選)的有序集成員的列表。

可用版本:>= 1.2.0

時間復雜度:O(log(N)+M),N為有序集的基數,而M為結果集的基數

具體實例:

<?php
$redis = new redis();
$redis -> connect(‘127.0.0.1‘,6379);
$redis -> flushAll();

$redis -> zAdd(‘myset‘,0,‘hello‘);
$redis -> zAdd(‘myset‘,1,‘world‘);
$redis -> zAdd(‘myset‘,1,‘foo‘);      //  集合中的元素唯一,但是分數可以重復
$redis -> zAdd(‘myset‘,2,‘hi‘);
$redis -> zAdd(‘myset‘,2.5,‘welcome‘);
$redis -> zAdd(‘myset‘,3,‘score‘);

var_dump($redis ->zRevRange(‘myset‘,0,-1,‘withScore‘));
//array (size=6)
//  ‘score‘ => float 3
//  ‘welcome‘ => float 2.5
//  ‘hi‘ => float 2
//  ‘world‘ => float 1
//  ‘foo‘ => float 1
//  ‘hello‘ => float 0

9、ZRANGEBYSCORE

Redis Zremrangebyscore 命令用於移除有序集中,指定分數(score)區間內的所有成員。

語法:

redis 127.0.0.1:6379> ZREMRANGEBYSCORE key min max

返回值:被移除成員的數量。

可用版本:>= 1.2.0

時間復雜度:O(log(N)+M),N為有序集的基數,M為被結果集的基數。

具體實例:

<?php
$redis = new redis();
$redis -> connect(‘127.0.0.1‘,6379);
$redis -> flushAll();

$redis -> zAdd(‘myset‘,0,‘hello‘);
$redis -> zAdd(‘myset‘,1,‘world‘);
$redis -> zAdd(‘myset‘,1,‘foo‘);
$redis -> zAdd(‘myset‘,2,‘hi‘);
$redis -> zAdd(‘myset‘,2.5,‘welcome‘);
$redis -> zAdd(‘myset‘,3,‘score‘);

var_dump($redis ->zRangeByScore(‘myset‘,2,3));
//array (size=3)
//  0 => string ‘hi‘ (length=2)
//  1 => string ‘welcome‘ (length=7)
//  2 => string ‘score‘ (length=5)

var_dump($redis ->zRangeByScore(‘myset‘,‘-inf‘,‘+inf‘));    // 返回分數值從負無窮到正無窮之間的值
//array (size=6)
//  0 => string ‘hello‘ (length=5)
//  1 => string ‘foo‘ (length=3)
//  2 => string ‘world‘ (length=5)
//  3 => string ‘hi‘ (length=2)
//  4 => string ‘welcome‘ (length=7)
//  5 => string ‘score‘ (length=5)

var_dump($redis -> zRange(‘myset‘,0,-1,‘withScore‘));       // 原集合不變
//array (size=6)
//  ‘hello‘ => float 0
//  ‘foo‘ => float 1
//  ‘world‘ => float 1
//  ‘hi‘ => float 2
//  ‘welcome‘ => float 2.5
//  ‘score‘ => float 3

10、ZREVRANGEBYSCORE

Redis Zrevrangebyscore 返回有序集中指定分數區間內的所有的成員。有序集成員按分數值遞減(從大到小)的次序排列。

具有相同分數值的成員按字典序的逆序(reverse lexicographical order )排列。

除了成員按分數值遞減的次序排列這一點外, ZREVRANGEBYSCORE 命令的其他方面和 ZRANGEBYSCORE 命令一樣。

語法:

redis 127.0.0.1:6379> ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]

返回值:指定區間內,帶有分數值(可選)的有序集成員的列表。

可用版本:>= 2.2.0

時間復雜度:O(log(N)+M),N為有序集的基數,M為結果集的基數。

具體實例:

<?php
$redis = new redis();
$redis -> connect(‘127.0.0.1‘,6379);
$redis -> flushAll();

$redis -> zAdd(‘myset‘,0,‘hello‘);
$redis -> zAdd(‘myset‘,1,‘world‘);
$redis -> zAdd(‘myset‘,1,‘foo‘);
$redis -> zAdd(‘myset‘,2,‘hi‘);
$redis -> zAdd(‘myset‘,2.5,‘welcome‘);
$redis -> zAdd(‘myset‘,3,‘score‘);

var_dump($redis ->zRevRangeByScore(‘myset‘,3,2));
//array (size=3)
//  0 => string ‘score‘ (length=5)
//  1 => string ‘welcome‘ (length=7)
//  2 => string ‘hi‘ (length=2)

var_dump($redis ->zRevRangeByScore(‘myset‘,‘+inf‘,‘-inf‘));    // 返回分數值從正無窮到負無窮之間的值
//array (size=6)
//  0 => string ‘score‘ (length=5)
//  1 => string ‘welcome‘ (length=7)
//  2 => string ‘hi‘ (length=2)
//  3 => string ‘world‘ (length=5)
//  4 => string ‘foo‘ (length=3)
//  5 => string ‘hello‘ (length=5)

var_dump($redis -> zRange(‘myset‘,0,-1,‘withScore‘));       // 原集合不變
//array (size=6)
//  ‘hello‘ => float 0
//  ‘foo‘ => float 1
//  ‘world‘ => float 1
//  ‘hi‘ => float 2
//  ‘welcome‘ => float 2.5
//  ‘score‘ => float 3

11、ZREMRANGEBYSCORE

Redis Zremrangebyscore 命令用於移除有序集中指定分數(score)區間內的所有成員。

語法:

redis 127.0.0.1:6379> ZREMRANGEBYSCORE key min max

返回值:被移除成員的數量。

可用版本:>= 1.2.0

時間復雜度:O(log(N)+M),N為有序集的基數,而M為被移除成員的數量。

具體實例:

<?php
$redis = new redis();
$redis -> connect(‘127.0.0.1‘,6379);
$redis -> flushAll();

$redis -> zAdd(‘myset‘,0,‘hello‘);      // score=0
$redis -> zAdd(‘myset‘,1,‘world‘);      // score=2
$redis -> zAdd(‘myset‘,1,‘foo‘);        // score=1
$redis -> zAdd(‘myset‘,2,‘hi‘);         // score=2
$redis -> zAdd(‘myset‘,2.5,‘welcome‘);  // score=2.5
$redis -> zAdd(‘myset‘,3,‘score‘);      // score=3

var_dump($redis ->zRemRangeByScore(‘myset‘,1,3));    // int 5

var_dump($redis ->zRange(‘myset‘,0,-1,‘withScore‘));
//array (size=1)
//  ‘hello‘ => float 0

12、ZINTER

Redis Zinter 命令計算給定的一個或多個有序集的交集. (作用與 redis 在 cmd 命令下的 ZINTERSTORE 作用相同)

默認情況下,結果集中某個成員的分數值是所有給定集下該成員分數值之

語法:

redis 127.0.0.1:6379> ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]

返回值:保存到目標結果集的的成員數量。

可用版本:>= 2.0.0

時間復雜度:O(N*K)+O(M*log(M)),N為給定key中基數最小的有序集,K為給定有序集的數量,M為結果集的基數。

具體實例:

<?php
$redis = new redis();
$redis -> connect(‘127.0.0.1‘,6379);
$redis -> flushAll();

$redis -> zAdd(‘myset‘,0,‘hello‘);      // score=0
$redis -> zAdd(‘myset‘,1,‘world‘);      // score=2
$redis -> zAdd(‘myset‘,1,‘foo‘);        // score=1
$redis -> zAdd(‘myset‘,2,‘hi‘);         // score=2
$redis -> zAdd(‘myset‘,2.5,‘welcome‘);  // score=2.5
$redis -> zAdd(‘myset‘,3,‘score‘);      // score=3

$redis -> zAdd(‘otherset‘,0,‘good‘);
$redis -> zAdd(‘otherset‘,1,‘hello‘);
$redis -> zAdd(‘otherset‘,2,‘world‘);

$array_set = array(‘myset‘,‘otherset‘);
var_dump($redis ->zInter(‘destinationset‘,$array_set));    // int 2
var_dump($redis ->zRange(‘destinationset‘,0,-1,‘withScore‘));
//array (size=2)
//  ‘hello‘ => float 1
//  ‘world‘ => float 3

13、ZUNION

Redis Zunionstore 命令計算給定的一個或多個有序集的並集.(其作用與 redis 在 cmd 中ZUNIONSTORE 相同)

默認情況下,結果集中某個成員的分數值是所有給定集下該成員分數值之

語法:

redis 127.0.0.1:6379> ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]

返回值:保存到 destination 的結果集的成員數量。

可用版本:>= 2.0.0

時間復雜度:O(N)+O(M log(M)),N為給定有序集基數的總和,M為結果集的基數。

具體實例:

<?php
$redis = new redis();
$redis -> connect(‘127.0.0.1‘,6379);
$redis -> flushAll();

$redis -> zAdd(‘myset‘,0,‘hello‘);      // score=0
$redis -> zAdd(‘myset‘,1,‘world‘);      // score=2
$redis -> zAdd(‘myset‘,1,‘foo‘);        // score=1
$redis -> zAdd(‘myset‘,2,‘hi‘);         // score=2
$redis -> zAdd(‘myset‘,2.5,‘welcome‘);  // score=2.5
$redis -> zAdd(‘myset‘,3,‘score‘);      // score=3

$redis -> zAdd(‘otherset‘,0,‘good‘);    // score=0
$redis -> zAdd(‘otherset‘,1,‘hello‘);   // score=1
$redis -> zAdd(‘otherset‘,2,‘world‘);   // score=2

$array_set = array(‘myset‘,‘otherset‘);
var_dump($redis ->zUnion(‘destinationset‘,$array_set));    // int 7
var_dump($redis ->zRange(‘destinationset‘,0,-1,‘withScore‘));
//array (size=7)
//  ‘good‘ => float 0
//  ‘foo‘ => float 1
//  ‘hello‘ => float 1
//  ‘hi‘ => float 2
//  ‘welcome‘ => float 2.5
//  ‘score‘ => float 3
//  ‘world‘ => float 3

14、ZRANK

Redis Zrank 返回有序集中指定成員的排名。其中有序集成員按分數值遞增(從小到大)順序排列。

語法:

redis 127.0.0.1:6379> ZRANK key member

返回值:如果成員是有序集 key 的成員,返回 member 的排名。 如果成員不是有序集 key 的成員,返回 nil 。

可用版本:>= 2.0.0

時間復雜度:O(log(N))

具體實例:

<?php
$redis = new redis();
$redis -> connect(‘127.0.0.1‘,6379);
$redis -> flushAll();

$redis -> zAdd(‘myset‘,0,‘hello‘);
$redis -> zAdd(‘myset‘,1,‘world‘);
$redis -> zAdd(‘myset‘,1,‘foo‘);
$redis -> zAdd(‘myset‘,2,‘hi‘);
$redis -> zAdd(‘myset‘,2.5,‘welcome‘);
$redis -> zAdd(‘myset‘,3,‘score‘);

var_dump($redis ->zRank(‘myset‘,‘welcome‘));    // int 4

15、ZREVRANK

Redis Zrevrank 命令返回有序集中成員的排名。其中有序集成員按分數值遞減(從大到小)排序。

排名以 0 為底,也就是說, 分數值最大的成員排名為 0 。

語法:

redis 127.0.0.1:6379> ZREVRANK key member

返回值:如果成員是有序集 key 的成員,返回成員的排名。 如果成員不是有序集 key 的成員,返回 nil 。

可用版本:>= 2.2.0

時間復雜度:O(log(N))

具體實例:

<?php
$redis = new redis();
$redis -> connect(‘127.0.0.1‘,6379);
$redis -> flushAll();

$redis -> zAdd(‘myset‘,0,‘hello‘);
$redis -> zAdd(‘myset‘,1,‘world‘);
$redis -> zAdd(‘myset‘,1,‘foo‘);
$redis -> zAdd(‘myset‘,2,‘hi‘);
$redis -> zAdd(‘myset‘,2.5,‘welcome‘);
$redis -> zAdd(‘myset‘,3,‘score‘);

var_dump($redis ->zRevRank(‘myset‘,‘welcome‘));    // int 1

16、ZREMRANGEBYRANK

Redis Zremrangebyrank 命令用於移除有序集中指定排名(rank)區間內的所有成員

語法:

redis 127.0.0.1:6379> ZREMRANGEBYRANK key start stop

返回值:被移除成員的數量。

可用版本:>= 2.0.0

時間復雜度:O(log(N)+M),N為有序集的基數,而M為被移除成員的數量。

具體實例:

<?php
$redis = new redis();
$redis -> connect(‘127.0.0.1‘,6379);
$redis -> flushAll();

$redis -> zAdd(‘myset‘,0,‘hello‘);      // rank=0
$redis -> zAdd(‘myset‘,1,‘world‘);      // rank=2
$redis -> zAdd(‘myset‘,1,‘foo‘);        // rank=1
$redis -> zAdd(‘myset‘,2,‘hi‘);         // rank=3
$redis -> zAdd(‘myset‘,2.5,‘welcome‘);  // rank=4
$redis -> zAdd(‘myset‘,3,‘score‘);      // rank=5

var_dump($redis ->zRemRangeByRank(‘myset‘,1,3));    // int 3

var_dump($redis ->zRange(‘myset‘,0,-1,‘withScore‘));
//array (size=3)
//  ‘hello‘ => float 0
//  ‘welcome‘ => float 2.5
//  ‘score‘ => float 3

如有轉載,請註明出處http://www.cnblogs.com/chrdai/p/6851731.html

redis 在 php 中的應用(Sorted-set篇)