学习自:Redis 的五种基本数据类型_redis的五种数据类型_喵先森爱吃鱼的博客-CSDN博客
Set
集合,存放一系列无重复元素
常用命令
命令 |
用法 |
说明 |
scard |
scard K | K中元素个数 |
sadd |
sadd K V1 V2 V3 V4 | 往K中添加数据 |
srem |
srem K V | 从K中移除数据 |
sismember | sismember K V | 判断V是否在K中 |
smembers | smembers K | 返回K中所有的V |
srandmember | srandmember K n |
随机返回n个K中的元素。 当n超过K的大小时,返回全部元素。 n可为负数,此时效果同绝对值 |
spop | spop K n | 随机删除n个K中的元素 |
smove | smove K1 K2 V | 把K1中的V移动至K2中 |
sdiff | sdiff K1 K2 |
返回K1和K2的差集(并非补集) 结果与K的顺序有关 |
sdiffstore | sdiffstore K3 K1 K2 | 求差集,并把结果存入K3 |
sinter | sinter K1 K2 | 求交集 |
sinterstore | sinterstore K3 K1 K2 | 求交集,并把结果存入K3 |
sunion | sunion K1 K2 | 求并集 |
sunionstore | sunionstore K3 K1 K2 | 求并集,并将结果存入K3 |
scard:K中元素个数
sadd:往K中加元素
srem:移除K中的某个元素
sismember:判断V是不是K的元素
smembers:返回K中全部的V
srandmember:随机取n个元素
spop:随机删除n个元素
smove:把一个K中的V移动到另一个K中
sdiff、sdiffstore:求差集
sinter、sinterstore:求交集
SUNION、SUNIONSTORE:求并集
zset或SortedSet
给数据加了Score的Set,可以根据Score对set中的数据进行排序。
底层用一个跳表(SkipList)+hash表实现。
特性
- 可排序
- 元素不重复
- 查询速度快
常用命令
命令 |
用法(下文S代表V的score) |
说明 |
zcard |
zcard K | K中元素数 |
zadd |
zadd K S V | 往K中添加V(分数S) |
zrem |
zrem K V |
删除K中的V |
zscore |
zscore K V |
获取K中某个V的S |
zrank |
zrank K V |
获取K中某个V的排名 |
zcount |
zcount K min max | 统计S在[min,max]内的元素个数 |
zincrby |
zincrby K n V | 让K中某个V的S自增n |
zrange | zrange K min max |
数据排序,根据S从小到大 如果要同时显示S,则要在最后加withscores |
zrevrange | zrevrange K min max |
数据排序,根据S从大到小 |
zrangebyscore | zrangebyscire K min max |
安装S排序后,获取S范围[min,max]内的V |
zdiff | zXXX n K1 K2 |
求差集 求交集 n为求集合的K的个数 求并集 |
zinter | ||
zunion | ||
以上所有排名都是升序,如果要降序,则在命令的z后加上rev即可,如上文的zrange和zrevrange |
zcard:元素个数
zadd:增加元素并完成排序
zrem:弹出指定元素v
zscore:查询K中V的S
zrange:查询指定下标范围的V(按照分数排序得到的下表)
zrevrange:与zrange类似,只是这里是降序
zcount:统计K中S在某个区间内的V
默认是[ min , max ],如果要排除某个区间边缘,则加一个(
zrangebyscore:统计S在指定区间内的V,加上withscores可以同时返回score
zrank:返回K中某个V的排名
zrevrank:与zrank相同,但这里排序是逆序(从大到小)
zincrby:让K中指定的V的S加3
zinter、zinterstore:求交集
zlexcount:计算成员间的成员数量
zrangebylex:返回指定区间内的成员,按S正序排序
标签:set,zset,min,max,元素,redis,K2,K1,排序 From: https://www.cnblogs.com/ShineLeBlog/p/17637900.html