Redis上一章教程请查看:redis列表和集合使用详解
这一章中我们讨论redis的有续集sorted set和HyperLogLog结构的使用。
一、redis有序集sorted set类型的使用
Redis有序集其惟一的特点是值存储在一个集合中,不同之处在于一个有序集的每个成员都与一个分数相关联,这个分数用于有序集的排序,从最小的分数到最大的分数。
在Redis有序集中使用O(1)添加、删除和测试成员的存在性(不管集合中包含多少元素,时间都是常数),列表的最大长度是2^32 – 1个元素(超过40亿)。
redis db> ZADD dbs 1 redis
(integer) 1
redis db> ZADD dbs 2 mongodb
(integer) 1
redis db> ZADD dbs 3 mysql
(integer) 1
redis db> ZADD dbs 3 mysql
(integer) 0
redis db> ZADD dbs 4 mysql
(integer) 0
redis db> ZRANGE dbs 0 10 WITHSCORES
1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"
Redis有序集sorted set的所有命令
编号 | 命令 & 简述 |
1 | ZADD key score1 member1 [score2 member2] 向有序集添加一个或多个成员或更新其分数(如果它已经存在) |
2 | ZCARD key 获取有序集合中的成员数 |
3 | ZCOUNT key min max 用给定值内的分数对有序集合中的成员进行计数 |
4 | ZINCRBY key increment member 增加有集合中成员的得分 |
5 | ZINTERSTORE destination numkeys key 交叉多个有序集并将得到的有序集存储在一个新键中 |
6 | ZLEXCOUNT key min max 计算给定范围内有序集中的成员数 |
7 | ZRANGE key start stop [WITHSCORES] 按索引返回有序集合中的成员范围 |
8 | ZRANGEBYLEX key min max [LIMIT offset count] 按字典范围返回有序集合中的成员范围 |
9 | ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT] 按分数返回有序集合中的成员范围 |
10 | ZRANK key member 确定有序集合中成员的索引 |
11 | ZREM key member [member …] 从有序集中删除一个或多个成员 |
12 | ZREMRANGEBYLEX key min max 删除给定词典范围内有序集中的所有成员 |
13 | ZREMRANGEBYRANK key start stop 删除给定索引中有序集中的所有成员 |
14 | ZREMRANGEBYSCORE key min max 删除给定分数内有序集合中的所有成员 |
15 | ZREVRANGE key start stop [WITHSCORES] 按索引返回有序集合中成员的范围,得分从高到低排序 |
16 | ZREVRANGEBYSCORE key max min [WITHSCORES] 按分数返回有序集合中成员的范围,分数从高到低排序 |
17 | ZREVRANK key member 确定有序集合中成员的索引,得分从高到低排序 |
18 | ZSCORE key member 获取有序集中与给定成员关联的分数 |
19 | ZUNIONSTORE destination numkeys key 添加多个有序集,并将得到的有序集存储在新键中 |
20 | ZSCAN key cursor [MATCH pattern] [COUNT count] 递增地迭代有序集元素和相关的分数 |
二、Redis HyperLogLog结构的使用
Redis HyperLogLog是一种使用随机化的算法,通过使用一个常量和少量的内存来提供一个集合中唯一元素数量的近似值。
HyperLogLog提供了一个非常好的集合基数近似值,即使使用非常小的内存,每个键大约12千字节,标准错误为0.81%,除了接近2^64个项目外可以计数的项目数量没有限制。
redis > PFADD dbs "redis"
1) (integer) 1
redis > PFADD dbs "mongodb"
1) (integer) 1
redis > PFADD dbs "mysql"
1) (integer) 1
redis > PFCOUNT dbs
(integer) 3
Redis HyperLogLog结构的所有命令
编号 | 命令 & 简述 |
1 | PFADD key element 将指定的元素添加到指定的HyperLogLog。 |
2 | PFCOUNT key 返回key处的近似基数。 |
3 | PFMERGE destkey sourcekey 将N个不同的HyperLogLogs合并为一个。 |
评论前必须登录!
注册