基础知识
redis set对外提供的功能与list相同,特殊之处,set可以自动排重,set是String类型的无序集合,它底层是一个value为null的hash表,所以添加、删除、查找的时间复杂度为O(1),它是一个dict字典表,字典表是由hash表实现的,java中的hashSet内部也是一个HashMap,只不过所有的value都指向同一个对象,Redis的set结构也是一样的,它的内部也使用了hash结构,所有的value都指向同一个内部值
操作命令
sadd key value1 value2 … 添加set信息
smembers key 获取key的值
sismember key value 判断key中是否存在value的值 1 有 0 无
scard key 返回集合的个数
srem key value1 value2 … 删除key指定的值
sprop key 随机删除key中的值,值都取完了以后,key也就不存在了
srandmember key n 随机从key中获取n个值,但是不会删除
smove key1 key2 value 把第一个key1的集合中的value移动到key2集合中去
sinter key1 key2 获取两个集合的交集
sunion key1 key2 获取两个集合的并集
sdiff key1 key2 获取key1 和key2的差集(key1中存在,key2中不存在的)