1.set 类型
- sadd
将⼀个或者多个元素添加到 set 中。注意,重复的元素无法添加到 set 中
语法:SADD key member [member …]
返回值:本次添加成功的元素个数 - smembers
获取⼀个 set 中的所有元素,注意,元素间的顺序是无序的
语法:SMEMBERS key
返回值:所有元素的列表 - sismember
判断⼀个元素在不在 set 中
语法:SISMEMBER key member
返回值:1 表示元素在 set 中。0 表示元素不在 set 中或者 key 不存在
127.0.0.1:6379> sadd key 1 2 3 4
4
127.0.0.1:6379> smembers key
1
2
3
4
127.0.0.1:6379> sismember key 2
1
127.0.0.1:6379> sismember key 100
0
- scard
获取⼀个 set 的基数(cardinality),即 set 中的元素个数
语法:SCARD key
返回值:set 内的元素个数
127.0.0.1:6379> smembers key
1
2
3
4
127.0.0.1:6379> scard key
4
- spop
从 set 中删除并返回⼀个或者多个元素。随机的
语法:SPOP key [count]
返回值:取出的元素
127.0.0.1:6379> smembers key
1
2
3
4
127.0.0.1:6379> spop key
1
127.0.0.1:6379> spop key 2
3
4
127.0.0.1:6379> spop key
2
- smove
将⼀个元素从源 set 取出并放入目标 set 中
语法:SMOVE source destination member
返回值:1 表示移动成功,0 表示失败
127.0.0.1:6379> sadd key 1 2 3 4
4
127.0.0.1:6379> sadd key2 5 6 7 8
4
127.0.0.1:6379> smove key key2 1
1
127.0.0.1:6379> smembers key
2
3
4
127.0.0.1:6379> smembers key2
1
5
6
7
8
- srem
将指定的元素从 set 中删除
语法:SREM key member [member …]
返回值:本次操作删除的元素个数
127.0.0.1:6379> smembers key2
1
5
6
7
8
127.0.0.1:6379> srem key2 6 7
2
127.0.0.1:6379> srem key2 1 2 5
2
- sinter
获取给定 set 的交集中的元素
语法:SINTER key [key …]
返回值:交集的元素 - sinterstore
获取给定 set 的交集中的元素并保存到目标 set 中
语法:SINTERSTORE destination key [key …]
返回值:交集的元素个数
127.0.0.1:6379> sadd key 1 2 3 4
4
127.0.0.1:6379> sadd key2 3 4 5 6
4
127.0.0.1:6379> sinter key key2
3
4
127.0.0.1:6379> sinterstore key3 key key2
2
127.0.0.1:6379> smembers key3
3
4
- sunion
获取给定 set 的并集中的元素
语法:SUNION key [key …]
返回值:并集的元素 - sunionstore
获取给定 set 的并集中的元素并保存到目标 set 中
语法:SUNIONSTORE destination key [key …]
返回值:并集的元素个数
127.0.0.1:6379> sunion key key2
1
2
3
4
5
6
127.0.0.1:6379> sunionstore key4 key key2
6
- sdiff
获取给定 set 的差集中的元素
语法:SDIFF key [key …]
返回值:差集的元素 - sdiffstore
获取给定 set 的差集中的元素并保存到目标 set 中
语法:SDIFFSTORE destination key [key …]
返回值:差集的元素个数
127.0.0.1:6379> smembers key
1
2
3
4
127.0.0.1:6379> smembers key2
3
4
5
6
127.0.0.1:6379> sdiff key key2
1
2
127.0.0.1:6379> sdiffstore key5 key key2
2
127.0.0.1:6379> sdiff key2 key
5
6
127.0.0.1:6379> smembers key5
1
2
2.zset 类型
- zadd
添加或者更新指定的元素以及关联的分数到 zset 中,分数应该符合 double 类型,+inf/-inf 作为正负
极限也是合法的
语法:ZADD key [NX | XX] [GT | LT] [CH] [INCR] score member [score member …]
返回值:本次添加成功的元素个数
ZADD的相关选项:
XX:只更新已经存在的元素。不要添加新元素。
NX:只添加新元素。不要更新已有的元素。
LT:只有当新分数低于当前分数时,才更新现有元素。这个标志并不妨碍添加新元素。
GT:只有当新分数高于当前分数时,才更新现有元素。这个标志并不能阻止添加新元素。
CH:将返回值从新增元素数调整到被更改元素总数(CH 是 changes 的缩写)。更改元素是指新增元素和已存在且分数已更新的元素。因此,命令行中指定的与过去评分相同的元素不计入。注意:返回值通常只计算新增元素的数量。ZADD
INCR:当指定该选项时,表现类似ZINCRBY。此模式下只能指定一对得分元素。ZADD
- zrange
返回指定区间⾥的元素,分数按照升序。带上 WITHSCORES 可以把分数也返回
语法:ZRANGE key start stop [WITHSCORES]
返回值:区间内的元素列表
127.0.0.1:6379> zadd key 10 zhangsan 20 lisi 30 wangwu
3
127.0.0.1:6379> zrange key 0 -1
zhangsan
lisi
wangwu
127.0.0.1:6379> zrange key 0 -1 withscores
zhangsan
10
lisi
20
wangwu
30
127.0.0.1:6379> zadd key nx 40 zhaoliu
1
127.0.0.1:6379> zrange key 0 -1 withscores
zhangsan
10
lisi
20
wangwu
30
zhaoliu
40
127.0.0.1:6379> zadd key nx 45 zhaoliu
0
127.0.0.1:6379> zrange key 0 -1 withscores
zhangsan
10
lisi
20
wangwu
30
zhaoliu
40
127.0.0.1:6379> zadd key xx 50 tainqi
0
127.0.0.1:6379> zrange key 0 -1 withscores
zhangsan
10
lisi
20
wangwu
30
zhaoliu
40
127.0.0.1:6379> zadd key xx 45 zhaoliu
0
127.0.0.1:6379> zrange key 0 -1 withscores
zhangsan
10
lisi
20
wangwu
30
zhaoliu
45
- zcard
获取⼀个 zset 的基数(cardinality),即 zset 中的元素个数
语法:ZCARD key
返回值:zset 内的元素个数
127.0.0.1:6379> zadd key 10 zhangsan 20 lisi 30 wangwu
3
127.0.0.1:6379> zcard key
3
- zcount
返回分数在 min 和 max 之间的元素个数,默认情况下,min 和 max 都是包含的,可以通过 ( 排除
语法:ZCOUNT key min max
返回值:满⾜条件的元素列表个数
127.0.0.1:6379> zrange key 0 -1 withscores
zhangsan
10
lisi
20
wangwu
30
127.0.0.1:6379> zcount key 10 30
3
127.0.0.1:6379> zcount key (10 30
2
- zpopmax
删除并返回分数最⾼的 count 个元素
语法:ZPOPMAX key [count]
返回值:分数和元素列表 - zpopmin
删除并返回分数最低的 count 个元素
语法:ZPOPMIN key [count]
返回值:分数和元素列表
127.0.0.1:6379> zadd key 10 zhangsan 20 lisi 30 wangwu 40 zhaoliuu 50 tianqi
5
127.0.0.1:6379> zrange key 0 -1
zhangsan
lisi
wangwu
zhaoliuu
tianqi
127.0.0.1:6379> zrange key 0 -1 withscores
zhangsan
10
lisi
20
wangwu
30
zhaoliuu
40
tianqi
50
127.0.0.1:6379> zpopmax key 2
tianqi
50
zhaoliuu
40
127.0.0.1:6379> zpopmin key 1
zhangsan
10
- zrank
返回指定元素的排名,升序
语法:ZRANK key member
返回值:排名 - zrevrank
返回指定元素的排名,降序
语法:ZREVRANK key member
返回值:排名
127.0.0.1:6379> zadd key 10 zhangsan 20 lisi 30 wangwu 40 zhaoliuu 50 tianqi
5
127.0.0.1:6379> zrank key lisi
1
127.0.0.1:6379> zrevrank key lisi
3
- zrem
删除指定的元素
语法:ZREM key member [member …]
返回值:本次操作删除的元素个数
127.0.0.1:6379> zrem key zhangsan
1
127.0.0.1:6379> zrange key 0 -1
lisi
wangwu
zhaoliuu
tianqi
- zremrangebyrank
按照排序,升序删除指定范围的元素,左闭右闭
语法:ZREMRANGEBYRANK key start stop
返回值:本次操作删除的元素个数
127.0.0.1:6379> zrange key 0 -1 withscores
lisi
20
wangwu
30
zhaoliuu
40
tianqi
50
127.0.0.1:6379> zremrangebyrank key 1 2
2
127.0.0.1:6379> zrange key 0 -1 withscores
lisi
20
tianqi
50
- zremrangebyscore
按照分数删除指定范围的元素,左闭右闭
语法:ZREMRANGEBYSCORE key min max
返回值:本次操作删除的元素个数
127.0.0.1:6379> zadd key 10 zhangsan 20 lisi 30 wangwu 40 zhaoliuu 50 tianqi
5
127.0.0.1:6379> zremrangebyscore key 20 40
3
127.0.0.1:6379> zrange key 0 -1 withscores
zhangsan
10
tianqi
50
- zinter
交集
语法:ZINTER numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE <SUM | MIN | MAX>] [WITHSCORES]
redis> ZADD zset1 1 "one"
(integer) 1
redis> ZADD zset1 2 "two"
(integer) 1
redis> ZADD zset2 1 "one"
(integer) 1
redis> ZADD zset2 2 "two"
(integer) 1
redis> ZADD zset2 3 "three"
(integer) 1
redis> ZINTER 2 zset1 zset2
1) "one"
2) "two"
redis> ZINTER 2 zset1 zset2 WITHSCORES
1) "one"
2) "2"
3) "two"
4) "4"
- zunion
并集
语法:ZUNION numkeys key [key …] [WEIGHTS weight [weight …]][AGGREGATE <SUM | MIN | MAX>] [WITHSCORES]
redis> ZADD zset1 1 "one"
(integer) 1
redis> ZADD zset1 2 "two"
(integer) 1
redis> ZADD zset2 1 "one"
(integer) 1
redis> ZADD zset2 2 "two"
(integer) 1
redis> ZADD zset2 3 "three"
(integer) 1
redis> ZUNION 2 zset1 zset2
1) "one"
2) "three"
3) "two"
redis> ZUNION 2 zset1 zset2 WITHSCORES
1) "one"
2) "2"
3) "three"
4) "3"
5) "two"
6) "4"
- zdiff
差集
语法:ZDIFF numkeys key [key …] [WITHSCORES]
redis> ZADD zset1 1 "one"
(integer) 1
redis> ZADD zset1 2 "two"
(integer) 1
redis> ZADD zset1 3 "three"
(integer) 1
redis> ZADD zset2 1 "one"
(integer) 1
redis> ZADD zset2 2 "two"
(integer) 1
redis> ZDIFF 2 zset1 zset2
1) "three"
redis> ZDIFF 2 zset1 zset2 WITHSCORES
1) "three"
2) "3"

1053

被折叠的 条评论
为什么被折叠?



