Redis - set 集合
1、set集合類似於list,可以存放一組string數據,不過有個特點是:
1)set集合中的數據是去重的,也就是所有數據不能有重復的
2)set結合中的數據是無序的,每次讀取可能順序都不一致
2、set集合數據結構:
set是一個string類型的無序集合,底層是一個value為null的hash表,所以添加、刪除、查找元素的
復雜度為 O(1)
3、set集合的命令:
1)sadd key v1 v2:
將一個多多個值存放在鍵名為key的集合中,已存在的元素將忽略
2)smembers key:
取出key集合中的所有值的信息
3)sismember key value:
判斷集合中是否存在 value值,類似於php中的in_array操作
4)scard key:
返回該集合中的元素個數,類似於php中的count($arrat)操作
5)srem key value value2:
從集合中刪除value值,這個沒有索引,因為set是無序的,需要根據value值來進行查找到值再進行 刪除操作
6)spop key:
隨機從集合中取出一個值,原集合中會將該值移除
7)srandmember key n:
隨機從集合中取出n個值,但不會將這些值刪除
8、smove <source> <to> value:
將集合中的一個value值移到另一個集合中去
9、sinter <key1> <key2>:
獲取集合的交集,兩個集合都有的數據
10、sunion <key1> <key2>:
獲取兩個集合的並集,取兩個集合的所有數據,重復的去重只獲取一次
11、sdiff <key1> <key2>:
獲取兩個集合的差集,key1中有key2中沒有的數據
sdiff <key2> <key1>:獲取key2中有,key1中沒有的數據