【set:集合类型(高中的集合知识)】

集合类型:无序、不可重复

列表类型:有序、可重复

 

【set类型】

1.添加元素

语法:sadd key member1 member2......

返回值:返回成功添加的元素个数

04_Redis数据类型(set、zset)

2.获取集合中的所有元素

语法:smembers key

04_Redis数据类型(set、zset)

3.删除集合中某个元素

04_Redis数据类型(set、zset)

4.判断元素是否在集合中

语法:sismember key member

返回值:存在,返回1;不存在,返回0。

04_Redis数据类型(set、zset)

【set集合之间的运算】

1.差集A-B

描述:属于集合A,但不属于集合B

04_Redis数据类型(set、zset)

 

 语法:sdiff key1 key2...

04_Redis数据类型(set、zset)

2.集合的交集A∩B

描述:属于集合A 且属于集合B的元素构成的集合

04_Redis数据类型(set、zset)

04_Redis数据类型(set、zset)

3.集合的并集A∪B

描述:属于A或属于B的元素构成的集合。

04_Redis数据类型(set、zset) 

 04_Redis数据类型(set、zset)

【集合的其他命令】

1.获取集合中的元素个数

语法:scard key

04_Redis数据类型(set、zset)

2.从集合中弹出一个元素

由于集合是无序的,所有SPOP命令会从集合中随机弹出一个元素。

04_Redis数据类型(set、zset)

 

【SortedSet类型:zset集合】

sortedSet有叫做zset。

zset是有序集合,可排序的,但是要唯一。

zset和set的不同之处在于,zset是会给set的元素添加一个分数,然后通过这个分数进行排序。

 

【zset类型】

1.添加元素

描述:向有序集合zset中添加一个元素和该元素的分数,如果该集合已经存在则会使用新的分数替换原有的分数。

返回值:新加入到集合中的元素的个数,不包含之前已经存在的元素。

语法:zadd key score1 member1 score2 member2 score3 member3......

04_Redis数据类型(set、zset)

2.获取元素的分数

语法:zscore key member

04_Redis数据类型(set、zset)

3.删除元素

描述:删除有序集合中的一个或多个成员,不存在的成员被忽略。

语法:zrem key member1 member2......

04_Redis数据类型(set、zset)

4.获得排名在某个范围内的元素列表

描述:按照元素分数从小到大的顺序返回索引从start到stop之间的所有元素(包含两端的元素)

语法:zrange key start stop

04_Redis数据类型(set、zset)

描述:按照元素分数从大到小的顺序返回索引从start到stop之间的所有元素(包含两端的元素)

语法:zrevrange key start stop 

04_Redis数据类型(set、zset)

描述:如果需要获得元素的分数,可以在尾部加上withscores参数

语法:zrange key start stop[withscores]

        zrevrange key start stop [withscores]

04_Redis数据类型(set、zset)

5.获取元素的排名

描述:从小到达获取某个元素的排名

语法:zrank key member

04_Redis数据类型(set、zset)

描述:从大到小获取某个元素的排名

语法:zrevrank key member

04_Redis数据类型(set、zset)

6.获取指定分数范围内的元素

语法:zrangebyscore key min max [withscores] [limit offset count]

 04_Redis数据类型(set、zset)

7.增加某个元素的分数

语法:zincrby key increment member

注意:不可以将increment和member的顺序调换,与之前的不一样

04_Redis数据类型(set、zset)

8.获取集合中元素的数量

语法:zcard key

04_Redis数据类型(set、zset)

9.获取指定分数范围内的元素个数

语法:zcount key min max

04_Redis数据类型(set、zset)

10.按照分数排名范围删除元素

语法:zremrangebyrank key start stop

04_Redis数据类型(set、zset)

11.按照分数范围删除元素

语法:zremrangebyscore key min max

04_Redis数据类型(set、zset)

【zset应用:商品销售排行榜】

需求:根据商品销售量对商品进行排名显示。

思路:定义商品销售排行榜(sorted set集合),key为items:sellsort,分数为商品的销售量。

写入商品销售量:(编号1001商品,销售量9;编号1002商品,销售量10;编号1003商品,销售量999)

04_Redis数据类型(set、zset)

 

相关文章:

  • 2021-07-03
  • 2021-12-03
  • 2021-10-08
  • 2021-12-09
  • 2022-12-23
  • 2021-07-25
  • 2021-12-22
猜你喜欢
  • 2021-08-21
  • 2021-09-07
  • 2021-12-26
  • 2021-07-03
  • 2021-07-14
  • 2022-12-23
  • 2021-08-28
相关资源
相似解决方案