(PHP)redis Zset(有序集合 sorted set)操作

/**
*
* Zset操作
* sorted set操作
* 有序集合
* sorted set 它在set的基础上增加了一个顺序属性,这一属性在修改添加元素的时候可以指定,每次指定后,zset会自动从新按新的值调整顺序
*
*/

// //将一个或多个元素插入到集合里面,默认从尾部开始插入
// //如果要在头部插入,则找一个元素,在元素后面添加一个你需要插入的元素即可
// $redis->zAdd('sorted1',100,'坑啊',98.999,99,90,90,80,80,60,60,70,70);
// // $redis->zAdd('集合',浮点数(元素),'key',(插入头部的数据),key);

// //返回有序集中指定区间内的成员。成员按分数值递增排序,分数值相同的则按字典序来排序。
// //参数:第四个参数表示是否返回各个元素的分数值,默认为false。
// $redis->zRange('sorted', 0, -1, true);

// //返回有序集中指定区间内的成员。成员按分数值递减排序,分数值相同的则按字典序的倒序来排序。
// $redis->zReverseRange('sorted', 0, -1, true);

// //返回有序集中指定分数区间的成员列表,按分数值递增排序
// $redis->zRangeByScore('sorted', 10, 99);
// //自定义返回的序集返回起始位置及条数
// $redis->zRangeByScore('sorted', 0,90,['limit' =>[0,2]]);

//返回有序集中指定分数区间的成员列表,按分数值递减排序,分数值相同的则按字典序的倒序来排序。注意,区间表示的时候大值在前,小值在后。
// $redis->zRevRangeByScore('sorted', 100, 90);

// //迭代有序集合中的元素。
// //可理解为查找指定的值,将元素修改为float类型
// //返回值:[元素名=>分数值,,..]
// $redis->zscan('sorted', $it, 100, 10);

// //返回指定有序集的元素数量,序集的长度。
// $redis->zCard('sorted');

// //返回有序集中指定分数区间的成员数量。
// $redis->zCount('sorted', 90, 100);

// //返回有序集中指定成员的分数值。若成员不存在则返回false。
// $redis->zScore('sorted', 'math');

// //返回有序集中指定成员元素的大小排名,按分数值递增排序。分数值最小者排名为0。
// $redis->zRank('sorted', 60);

// //返回有序集中指定成员元素的排名,按分数值递减排序。分数值最大者排名为0。
// $redis->zRevRank('sorted', 70);

// //删除有序集中的一个或多个成员,忽略不存在的成员。返回删除的元素个数。
// $redis->zRem('sorted', 'chemistry', 'English');

// //删除有序集中指定排名区间的所有成员,返回删除元素个数
// $redis->zRemRangeByRank('sorted', 0, 2);

// //删除有序集中指定分数值区间的所有成员,返回删除元素的个数
// $redis->zRemRangeByScore('sorted', 80, 90);

// //对有序集中指定成员的分数值增加指定增量值。若为负数则做减法,若有序集不存在则先创建,若有序集中没有对应成员则先添加,最后再操作。
// $redis->zIncrBy('sorted', 2, 'Chinese');

// //计算给定一个或多个有序集的交集,元素相加,并将其存储到目的有序集中
// $redis->zinterstore('zset3',['sorted','sorted1']);


// //计算给定一个或多个有序集的并集,元素相加,并将其存储到目的有序集中
// $redis->zunionstore('zset3',['sorted', 'sorted1']);

转载于:https://www.cnblogs.com/junyi-bk/p/10905992.html

Redis中,`list`和`zset`是两种不同类型的数据结构,它们各有特点,适合不同的应用场景。 **1. List集合(List):** - `List`在Redis中是一个双向链表,元素有序,并支持在任意位置插入和删除元素。 - 存储方式:每个元素都有一个唯一的序列号(用于索引),可以使用`lpush`(左推)和`rpush`(右推)方法添加元素到列表前端或后端。 - 查询:可以通过索引直接获取元素,也可以使用`lrange`命令按范围获取。 - 适用场景:例如消息队列、日志记录等,需要按照顺序插入和获取数据的情况。 **2. Sorted Set(ZSet):** - `ZSet`其实是一个集合,但是每个元素还有一个分数(score),它将成员按照分数进行排序,支持范围查询和排序查找。 - 存储方式:每个元素由一个唯一的成员(member)和一个浮点数分数(score)组成,分数决定了元素在集合中的排序位置。 - 查询:可以使用`zrange`命令获取指定范围内的元素,`zrank`和`zrevrank`用来获取元素在集合中的排名,`zscore`获取元素的分数。 - 适用场景:排行榜、用户评分等,需要基于某种属性进行排序的场景。 总结一下,选择`list`还是`zset`主要取决于你的需求:如果对元素的顺序有严格要求并频繁进行插入和删除操作,那么`list`更合适;如果需要元素排序并且根据某个得分进行检索,那么`zset`更适合。如果你需要详细介绍如何在这些集合类型中存储特定的数据,或者有关它们的具体操作,请告诉我,我会提供更详细的指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值