Laravel中Redis有序合集常用指令

 

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

http://t.csdn.cn/PF3jP

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值