大数据学习之Redis,十大数据类型的具体应用(二)

目录

3.5 Redis 集合(Set)

单值多value,且无重复

sadd / smembers / sismember / srem / scard

srandmember / spop

smove

集合运算

应用场景

3.6 Redis有序集合Zset(sorted set)

有序有重复

zadd / zrange / zrevrange

zrangebyscore

zscore / zcard / zrem

zincrby / zcount / zmpop

zrank / zrevrank

应用场景


3.5 Redis 集合(Set)

单值多value,且无重复
sadd / smembers / sismember / srem / scard
  • sadd key member [member ...]

    添加元素

sadd set1 1 1 1 2 2 2 3 4 5 #输出5
  • smembers key

    遍历集合中的所有元素

smembers set1 #输出 1 2 3 4 5
  • sismember key member

    判断元素是否在集合中

sismember set1 x #输出 0
sismember set1 1 #输出 1
  • srem key member [member ...]

    删除元素

srem set1 y #输出 0
srem set1 1 #输出 1
smembers set1 #输出 2 3 4 5
  • scard

    获取集合里面的元素个数

scard set1 #输出 4
srandmember / spop
  • srandmember key [数字]

    从集合中随机展现设置的数字个数元素,元素不删除

sadd set1 1 2 3 4 5 6 7 8 #输出 4
smembers set1 #输出 1 2 3 4 5 6 7 8
srandmember set1 1 #输出 3
srandmember set1 3 #输出 7 2 6
smembers set1 #输出 1 2 3 4 5 6 7 8 对原始数据不破坏
  • spop key [数字]

    从集合中随机弹出一个元素,出一个删一个

spop set1 1 #输出 8 
spop set1 1 #输出 2
spop set1 2 #输出 6 4
smembers set1 #输出 1 3 5 7 对原始数据破坏
smove
  • smove key1 key2

    将key1里已经存在的某个值赋给key2

sadd set2 a b c #输出 3
smove set1 set2 7 #输出 1
smember set1 #输出 1 3 5
smember set2 #输出 b a 7 c
集合运算
  • 集合运算

del set1
del set2
sadd set1 a b c 1 2
sadd set2 1 2 3 a x

集合的差集运算 A - B ,属于A但是不属于B的元素构成的集合

  • sdiff key [key ...]

sdiff set1 set2 #输出 b c
sdiff set2 set1 #输出 3 x

集合的并集运算 A∪B ,属于A或者属于B的元素构成的集合

  • sunion key [key ...]

sunion set1 set2 #输出 x a b 1 2 3 c

集合的交集运算 A∩B ,属于A同时属于B的元素构成的集合

  • sinter key [key ...]

sinter set1 set2 #输出 a 1 2 
  • sintercard numkeys key [key ...] [LIMIT limit]

它不返回结果集,而只返回结果的基数。 返回由所有给定集合的交集产生的集合的基数

  • 基数:去重之后的数字个数

sintercard 2 set1 set2 #输出 3
sintercard 2 set1 set2 limit 1 #输出 1
sintercard 2 set1 set2 limit 2 #输出 2
sintercard 2 set1 set2 limit 3 #输出 3
sintercard 2 set1 set2 limit 4 #输出 3
应用场景

可能认识的人

3.6 Redis有序集合Zset(sorted set)

有序有重复

在set基础上,每个val值前加一个score分数值

之前set是k1 v1 V2 v3

现在zset是k1 score1 v1 score2 v2

向有序集合中加入一个元素和该元素的分数

zadd / zrange / zrevrange
  • zadd key score member [score member ...]

添加元素

zadd zset1 60 v1 70 v2 80 v3 90 v4 100 v5
  • zrange key start stop [withscores]

按照元素分数从小到大的顺序,返回索引从start到stop之间的所有元素

zrange zset1 0 -1 #输出 v1 v2 v3 v4 v5
zrange zset1 0 -1 withscores # v1 60 v2 70 v3 80 v4 90 v5 100
  • zrevrange

zrevrange zset1 0 -1 withscores #输出 v5 100 v4 90 v3 80 v2 70 v1 60
zrangebyscore
  • zrangebyscore key min max [withscores] [limit offset count]

获取指定分数范围的元素

withscores --> 输出带分数

( --> 不包括

limit 作用是返回限制 ;limit开始下标步 多少步

zrangebyscore zset1 60 90 #输出 v1  v2 v3 v4
zrangebyscore zset1 60 90 withscores #输出 v1 60 v2 70 v3 80 v4 90
zrangebyscore zset1 (60 90 withscores #输出 v2 70 v3 80 v4 90
zrangebyscore zset1 (60 90 withscores limit 0 2 #输出 v2 70 v3 80
zscore / zcard / zrem
  • zscore key member

获取元素的分数

zscore zset1 v5 #输出 100
zscore zset1 v4 #输出 90
  • zcard key

获取集合中元素的数量

zcaed zset1 #输出 5
  • zrem key

某score下对应的value值,作用是删除元素

zrem zset1 v5 #输出 1
zrem zset1 v5 #输出 0
zrange zset1 0 -1 withscores #输出 v1 60 v2 70 v3 80 v4 90
zincrby / zcount / zmpop
  • zincrby key increment member

增加某个元素的分数

zincrby zset1 3 v1 #输出 63
zrange zset1 0 -1 withscores #输出 v1 63 v2 70 v3 80 v4 90
  • zcount key min max

获得指定分数范围内的元素个数

zcount zset1 65 70 #输出 1
  • zmpop

从键名列表中的第一个非空排序集中弹出一个或多个元素,他们是成员分数对

zmpop 1 zset1 min count 1 #输出 zset1 v1 63
zrank / zrevrank
  • zrank key values值

作用是获得下标值

zrange zset1 0 -1 #输出 v2 v3 v4
zrank zset1 v2 #输出 0
  • zrank key values值

作用是逆序获得下标值

zrevrank zset1 v2 #输出 2
应用场景

打赏

你可能感兴趣的:(redis,学习,redis,数据库)