一、简介
Set是集合,它是string类型的无序集合。set是通过hash table实现的,添加、删除和查找的复杂度都是0(1)。对集合我们可以取并集、交集、差集。通过这些操作我们可以实现sns中的好友推荐和blog的tag功能。
无需集合。
二、set的相关操作
1.sadd setkey value:向名称为setkey的set中添加value元素。添加成功返回1,添加失败返回0。同一个值不能重复添加。
127.0.0.1:6379> sadd setkey 'hello' (integer) 1 127.0.0.1:6379> sadd setkey 'world' (integer) 1 127.0.0.1:6379> sadd setkey 'world' (integer) 0 127.0.0.1:6379> smembers setkey 1) "world" 2) "hello"
添加进去的元素排序是随机的,无序的。
2.smembers setkey:获取setkey对应的集合中的所有元素。例子同1
3.srem setkey value:删除名称为setkeyt中的value元素。删除成功返回值为1
127.0.0.1:6379> smembers setkey 1) "world" 2) "hello" 127.0.0.1:6379> srem setkey hello (integer) 1 127.0.0.1:6379> smembers setkey 1) "world"
4.spop setkey:从setkey的集合中随机弹出并且删除一个元素。
127.0.0.1:6379> smembers setkey 1) "2000" 2) "world" 3) "4000" 4) "longjian" 5) "3000" 6) "hello" 7) "zhiqiang" 127.0.0.1:6379> spop setkey "longjian" 127.0.0.1:6379> spop setkey "4000" 127.0.0.1:6379> spop setkey "hello"
127.0.0.1:6379> smembers setkey 1) "world" 2) "3000" 3) "2000" 4) "zhiqiang"
无规律随机弹出,并且将该元素从集合删除。
5.sdiff setkey1 setkey2:返回两个集合的差集,以setkey1为标准,谁在前面以谁为标准。
127.0.0.1:6379> smembers setkey 1) "world" 2) "3000" 3) "2000" 127.0.0.1:6379> smembers setkey1 1) "world" 2) "hello" 3) "2000" 127.0.0.1:6379> sdiff setkey setkey1 1) "3000" 127.0.0.1:6379> sdiff setkey1 setkey 1) "hello"
6.sdiffstore setkey3 setkey1 setkey2:返回setkey1,setkey2,setkey3的差集,并将结果存入到setkey3中。如果成功则返回1
127.0.0.1:6379> smembers setkey1 1) "world" 2) "hello" 3) "2000" 127.0.0.1:6379> smembers setkey2 1) "3000" 2) "world" 3) "2000" 127.0.0.1:6379> sdiffstore setkey3 setkey1 setkey2 (integer) 1 127.0.0.1:6379> smembers setkey3 1) "hello" 127.0.0.1:6379> sdiffstore setkey3 setkey2 setkey1 (integer) 1 127.0.0.1:6379> smembers setkey3 1) "3000"
从上面的例子很容易看出,如果连续用sdiifstore在一个key中存取差集的结果,是回覆盖掉之前的value。 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|