集合与列表的本质区别在于,存储的元素不可重复,无序。
添加元素(SADD)
使用SADD可以添加元素
SADD key val [val2 val3...]
可以添加单个元素
SADD number "one"
SADD number "two"
SADD number "three"
等价于
SADD number "one" "two" "three"
因为可以保证唯一性,因此当重复添加相同的元素时,会被忽略。
移除元素(SREM)
可以使用SREM移除指定的元素,支持批量操作
SREM key val [val2 val3...]
例如,
SREM number "one" "two"
等价于
SREM number "one"
SREM number "two"
-- 返回的移除的元素个数
当删除的元素不存在时,则返回0
将元素从一个集合移动到另外的集合 (SMOVE)
SMOVE可以实现集合元素的移动,从set1中删除,添加到set2
SMOVE set1 set2 element
例如把one从number移动到english集合中
SMOVE number english "one"
获取所有的元素(SMEMBERS)
使用SMEMBERS可以获取所有的元素
SMEMBERS key
例如,想要获取number里面的所有元素
SMEMBERS number
获取元素的个数(SCARD)
使用SCARD可以获取元素的个数
SCARD key
例如,想要获取number里面的元素个数
SCARD number
判断某个元素是否存在(SISMEMBER)
使用SISMEMBER判断指定元素是否存在于指定的集合
SISMEMBER key element
例如,判断four在不在number集合中
SISMEMBER number "four"
随机获取元素(SRANDMEMBER)
1. 随机获取一个元素
SRANDMEMBER key
示例:
SRANDMEMBER number
-- 随机返回一个
2. 随机返回N个不重复元素
SRANDMEMBER key +N
示例:
SRANDMEMBER number 2
-- 返回的2个元素一定不同
3. 随机返回N个可重复元素
SRANDMEMBER key -N
示例:
SRANDMEMBER number -2
-- 2个元素可能相同
随机移除元素(SPOP)
与SREM不同,SPOP是随机的。与SRANDMEMBER不同,SPOP是移除元素的。
SPOP key +N
如果随机移除一个元素,可以不指定N
SPOP number
也可以指定个数
SPOP number 2
求交集(SINTER, SINTERSTORE)
将多个集合中均存在的元素取出
SINTER set1 set2 [set3 ...]
示例:
SINTER number english
SINTERSTORE是把交集的元素存入新的键中
SINTERSTORE new_key set1 set2 [set3 ...]
例如
SINTERSTORE result number english
求并集(SUNION,SUNIONSTRORE)
使用方法类似
SUNION set1 set2 [set3 ...]
SUNIONSTORE result set1 set2 [set3 ...]
求差集(SDIFF, SDIFFSTORE)
类似的
SDIFF set1 set2 [set3 ...]
SDIFFSTORE result set1 set2 [set3 ...]