006:Redis-Set集合类型操作使用
Set集合类型:
所谓的集合好比一个乾坤袋,什么东西都可以放进去,但是每个集合中的各个元素不能重复。
- redis的set是string类型的无序集合
- set元素最大可以包含(2的32次方-1)个元素
- 关于set集合类型除了基本的添加删除操作,其他有用的操作还包含集合的取并集(union),交集(intersection),差集(difference)。
通过这些操作可以很容易的实现好友推荐功能:
下图所示:
我们用集合把两个人的朋友圈表示出来:
Set集合类型操作:
首先我们还是先看一下set类型的操作:
sadd key member:
设置名为tomFri的key,其类型为set,内部有5个元素
设置名为linkenFri的key,其类型为set,内部有5个元素:
已经设置好两个集合了。
sinter key1 key2 … keyN:
查看key的交集
sunion key1 key2 … keyN:
查看key的并集
sdiff key1 key2 … keyN:
取集合的差集,并不是两个集合中不同的。
而是取在前面集合中后面集合没有的元素
如下图:
只有tom没有link的
只有link没有tom的
取差集的时候,两个集合的顺序是有区别的!
smembers key:
返回对应集合中的所有元素,结果是无序的。
sismember key member:
判断这个元素是不是集合中的元素
存在则返回1,否则返回0.
scard key:
返回集合的元素个数。
smove p1 p2 member:
把集合1的元素移动到集合2中、
srem key member:
从集合中删除指定的元素出去
这就是set集合类型的基本操作使用。