今天做了一个小实验,起因如下:
先在redis里构造了测试数据,如下:
> zadd my_zset_999 1 35570
(integer) 1
> zadd my_zset_999 2 40617
(integer) 1
> zadd my_zset_999 3 40956
(integer) 1
> zadd my_zset_999 4 41151
(integer) 1
>
> zrange my_zset_999 0 -1 WITHSCORES
1) "35570"
2) "1"
3) "40617"
4) "2"
5) "40956"
6) "3"
7) "41151"
8) "4"
>
> zrange my_zset_999 0 -1
1) "35570"
2) "40617"
3) "40956"
4) "41151"
测试方法就是很简单的计算程序运行时间。
$t1 = microtime(true);
// 代码片段
$t2 = microtime(true);
$t = $t2 - $t1;
方法1
zrange key 0 -1 取出所有的值
array_rand() 从数组中随机取出一个值
方法2
zcount key -inf +inf 计算该集合有多少个元素(cnt)
rand(1, cnt) 生成一个随机数(random)
zrangebyscore key random random
方法3:对方法2的改造
zcard key