Redis基础数据结构——集合
redis的集合set相当于Java里面的HashSet,它内部的键值对是无序的、唯一的。它的内部相当于一个特殊的字典,字典中所有的value都是一个值NULL。
set结构可以用来存储在某活动中中奖的用户ID,因为有去重功能,可以保证同一个用户不会中奖两次。
1.redis集合的基本操作
(1)单集合操作
sadd key member [member …] #添加一个或多个元素到集合里
sismember key member #判断一个元素是否是集合里的
smembers key #获取集合里面的所有元素
scard key #获取集合里面的元素数量
srandmember key count #从集合里面随机获取count个元素
spop key count #从集合里面删除count个元素,这是随机的
(2)多集合操作
sinter key [key …] #获得多个集合的交集
sinterstore destination key [key …] #获得多个集合的交集,并存储在结果集
smove source destination member #移动集合里面的一个元素到另一个集合里面
sunion key [key …] #合并多个集合
sunionstore destination key [key …] #合并多个集合并存放在结果集
2.redis集合的内部实现
redis里面set大的结构底层实现也是字典,只不过set只需要确定key是否存在,对于value是什么并不关心,因而所有的value都是NULL,其他特性和字典是一模一样的。字典的内部实现详见Redis基础数据结构——字典