Redis中的集合类型

马谦马谦马谦 2017年11月25日22:05:06 发表评论
文章最后编辑于:2019-6-16 13:45:11

一、概述

redis中的集合可以用来存储一堆无序的元素,集合内的元素不会重复,只有存在或者不存在两种属性。集合在redis内部是使用值为空的散列来实现的,所以集合操作的时间复杂度为O(1),多个集合之间可以进行交并运算。

二、命令

2.1 增加或者删除元素

  • SADD key member [member]:向集合中添加元素,返回成功添加的元素个数,如果key不存在会自动创建。
  • SREM key member [member]:删除元素,返回成功删除的元素个数。

2.2 获取集合元素

  • SMEMBERS key:获取集合key中的所有元素。

2.3 判断元素是否存在

  • SISMEMBER key member:判断member是否存在于key 中,存在返回1,不存在返回0

2.4 获取集合的元素个数

  • SCARD key:获取集合中的元素个数。

2.5 随机返回元素

  • SRANDMEMBER key [count]:在集合中随机返回一定数量的元素,默认返回1个。

count<0时返回的元素可能会重复,当count>0时不会重复。

2.6 随机移除元素

  • SPOP key:在集合中随机移除一个元素并返回。

2.7 集合间运算

  • SMOVE src dest item:如果src中包含item元素,移除并添加到dest中去。成功移除返回1,否则返回0

  • SDIFF key [key ...]:集合件做差值运算,计算存在于第一个集合不存在于其他集合中的元素。
  • SDIFFSTORE dest key [key...]:把存在于第一个集合但不存在于其他集合的元素储存到dest 中,返回元素的个数。

要注意的是这里只会返回存在于第一个集合但是不存在于其他集合的元素,并不会把所以集合的差值都显示出来

  • SINTER key [key ...]:计算交集,返回所有集合中都存在元素。
  • SINTERSTORE dest key [key ...]:计算交集,并把结果存到dest中。

  • SUNION key [key ...]:求并集,返回至少存在于一个集合中的元素。
  • SUNION dest key [key ...]:求并集并把结果保存到dest中。

本文共执行47次查询,耗时0.577秒!
马谦马谦马谦

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: