【Redis】通用命令3

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"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值