Redis数据结构之Set


Redis数据结构之Set

常用命令

sadd ... 将一个或多个member元素加入到集合key中,已经存在的member元素将被忽略

smembers 取出该集合的所有值

sismember 判断集合是否含有该值,有1,没有0

scard 返回该集合的元素个数

srem ... 删除集合中的某个元素

spop 随机从该集合中吐出一个值

srandmember 随机从该集合中取出n个值。不会从集合中删除

smove value 把集合中的一个值从一个集合移动到另一个集合

sinter 返回两个集合的交集元素

sunion 返回两个集合的并集元素

sdiff 返回两个集合的差集元素(key1中的,不包含在key2中的)

数据结构

Set的数据结构是dict字典,字典是用哈希表实现的。

Java中HashSet的内部实现使用的是HashMap,只不过所有的value都指向同一个对象。

Redis的set结构也一样,它的内部也使用hash结构,所有的value都指向同一个内部值