sadd 增加元素,并设置序号,成功返回true,重复返回false
$redis->zadd('zset1', 1, 'zhangsan');
$redis->zadd('zset1', 2, 'lisi');
$redis->zadd('zset1', 3, 'wangwu');
zincrby 对指定元素索引值的增减,改变元素排列次序
$redis->zincrby('zset1', 10, 'zhangsan'); // 返回11
zrem 移除指定元素
$redis->zrem('zset1', 'zhangsan'); // 返回 true or false
zrange 按位置次序返回表中指定区间的元素
$redis->zrange('zset1', 0, 1);
// 返回位置 0 和 1的元素
/*
Array
(
[0] => lisi
[1] => zhangsan
)
*/
$redis->zrange('zset1', 0, -1);
// 返回所有元素
/*
Array
(
[0] => lisi
[1] => zhangsan
[2] => wangwu
)
*/
$redis->zrange('zset1', 0, -1, 'withscores');
// 返回所有元素 并包含索引值
/*
Array
(
[lisi] => 1
[wangwu] => 1
[zhangsan] => 1
)
*/
zrevrange 同上,返回表中指定区间的元素,按次序倒排
$redis->zrevrange('zset1', 0, -1); // 元素顺序和zrange相反
zrangebyscore/zrevrangebyscore 按顺序/降序返回表中指定索引区间的元素
$redis->zadd('zset1', 3, 'wangwu');
$redis->zadd('zset1', 5, 'liliu');
// 返回索引值2-9之间的元素 array('wangwu','liliu')
$redis->zrangebyscore('zset1', 2, 9);
// 返回索引值2-9之间的元素并包含索引值
$redis->zrangebyscore('zset1', 2, 9, 'withscores');
// 返回索引值2-9之间的元素,'withscores' =>true表示包含索引值; 'limit'=>array(1, 2),
// 表示偏移1条,返回2条,结果为array(array('wangwu',3),array('liliu',5))
$redis->zrangebyscore('zset1', 2, 9, array('withscores'=>true, 'limit'=>array(1, 2)));
zunionstore/zinterstore 将多个表的并集/交集存入另一个表中
// 将'zset1','zset2','zset0'的并集存入'zset3'
$redis->zunionstore('zset3', array('zset1', 'zset2', 'zset0'));
// weights参数表示权重,其中表示并集后 zset1集合的分 * 2 后存储到 zset3 集合, zset2集合的分 * 1 后存储到 zset3 集合
$redis->zunionstore('zset3', array('zset1', 'zset2'), array('weights' => array(2, 1)));
// 'aggregate' => 'max'或'min'表示并集后相同的元素是取大值或是取小值
$redis->zunionstore('zset3', array('zset1', 'zset2'), array('aggregate' => 'max'));
zcount 统计一个索引区间的元素个数
$redis->zcount('zset1', 3, 5); // 返回 2
//'(3'表示索引值在3-5之间但不含3,同理也可以使用'(5'表示上限为5但不含5
$redis->zcount('zset1', '(3', 5));
zcard 统计元素个数
$redis->zcard('zset1'); // 返回 4
zscore 查询元素的索引
$redis->zscore('zset1', 'wangwu'); // 返回 3
zremrangebyscore 删除一个索引区间的元素
$redis->zremrangebyscore('zset1', 0, 2);
// 删除索引在0-2之间的元素('zhangsan','lisi'), 返回删除元素个数2
zrank/zrevrank 返回元素所在表顺序/降序的位置(不是索引)
// 返回0,因为它是第一个元素;zrevrank则返回1(最后一个)
$redis->zrank('zset1', 'ef');
zremrangebyrank 删除表中指定位置区间的元素
// 删除位置为0-10的元素,返回删除的元素个数2
$redis->zremrangebyrank('zset1', 0, 10);
原文链接:https://blog.csdn.net/json_ligege/article/details/121009905