redis的基本数据类型为:
- string
- list
- set
- hash
- zset
set数据类型(集合)值是无序的不可重复的
在redis中,set命令都以"s"开头:
sadd <set> <value>... #向set中添加元素
smembers <set> #获取set中的所有元素
sismember <set> <value> #判断set中是否存在value元素
scard <set> #获取set中元素个数
srandmember <set> #随机抽取set中的一个元素
srandmember <set> <n> #随机抽取set中的n个元素
spop <set> #随机删除set中的一个元素,返回被删除的元素(可作抽奖用)
srem <set> <value> #移除set中的值为value的元素
smove <set1> <set2> <value> #将set1中值为value的元素移到set2中
#差集
sdiff <set1> <set2>... #返回集合set1与集合set2..的差集的元素
#例:key1 = {a,b,c,d}
# key2 = {c}
# key3 = {a,c,e}
# SDIFF key1 key2 key3 返回 "b" "d"
sdiffstore <set> <set1> <set2> ... #将集合set1与集合set2..的差集的元素都放入set集合中,
#返回值为差集元素个数。当set存在时,会被重写覆盖
#例:key1 = {a,b,c,d}
# key2 = {c,d,e,f}
# SDIFFSTORE key key1 key2 返回 2
# SMEMBERS key 返回 "a" "b"
#交集
sinter <set1> <set2>... #返回指定所有的集合的成员的交集元素,当其中一个集合不存在,则返回空
sinterstore <set> <set1> <set2> ... #将指定所有集合的交集元素放到set集合中,当set存在时会重写
#并集
sunion <set1> <set2>... #返回指定所有集合的成员的并集元素,不存在的集合可认为为空集
sunionstore <set> <set1> <set2> ... #将指定所有集合的并集元素放到set集合中,当set存在时会重写