它是String类型的无序集合,集合可以取交集并集差集,通过这些操作我们可以实现sns的推荐和blog的tag功能。
* sadd
添加元素(返回1成功 0失败)
127.0.0.1:6379> sadd myset1 one
(integer) 1
127.0.0.1:6379> sadd myset1 two
(integer) 1
127.0.0.1:6379> sadd myset1 two
(integer) 0
127.0.0.1:6379> smembers myset1
1) "two"
2) "one"
- srem
删除set中的元素
127.0.0.1:6379> sadd myset2 ont
(integer) 1
127.0.0.1:6379> srem myset2 ont
(integer) 1
127.0.0.1:6379> smembers myset2
(empty list or set)
127.0.0.1:6379>
- spop
随机返回并删除集合中的元素
127.0.0.1:6379> sadd myset3 one
(integer) 1
127.0.0.1:6379> sadd myset3 two
(integer) 1
127.0.0.1:6379> sadd myset3 three
(integer) 1
127.0.0.1:6379> sadd myset3 four
(integer) 1
127.0.0.1:6379> sadd myset3 five
(integer) 1
127.0.0.1:6379> smembers myset3
1) "four"
2) "three"
3) "two"
4) "one"
5) "five"
127.0.0.1:6379> spop myset3
"three"
127.0.0.1:6379> spop myset3
"one"
127.0.0.1:6379> spop myset3
"two"
127.0.0.1:6379> smembers myset3
1) "four"
2) "five"
- sdiff
返回两个集合的差集
127.0.0.1:6379> smembers myset3
1) "four"
2) "five"
127.0.0.1:6379> smembers myset1
1) "two"
2) "one"
127.0.0.1:6379> sdiff myset3 myset1
1) "four"
2) "five"
127.0.0.1:6379> sdiff myset1 myset3
1) "two"
2) "one"
- sdiffstore
将两个集合的差集存到第三个集合中
127.0.0.1:6379> sdiffstore myset5 myset1 myset3
(integer) 2
127.0.0.1:6379> smembers myset5
1) "two"
2) "one"
- sinter
交集 - sinterstore
- sunion
- sunionstore
- smove
从第一个集合移动到另一个集合
127.0.0.1:6379> smembers myset5
1) "two"
2) "one"
127.0.0.1:6379> smembers myset3
1) "four"
2) "five"
127.0.0.1:6379> smove myset5 myset3 two
(integer) 1
127.0.0.1:6379> smembers myset5
1) "one"
127.0.0.1:6379> smembers myset3
1) "two"
2) "four"
3) "five"
- scard
查看集合的元素个数
127.0.0.1:6379> smembers myset3
1) "two"
2) "four"
3) "five"
127.0.0.1:6379> scard myset3
(integer) 3
- sismember
是否某元素是否属于某集合
127.0.0.1:6379> smembers myset3
1) "two"
2) "four"
3) "five"
127.0.0.1:6379> scard myset3
(integer) 3
127.0.0.1:6379> sismember myset3 two
(integer) 1
127.0.0.1:6379> sismember myset3 six
(integer) 0
- srandmember
随机返回集合中的元素,但不删除
127.0.0.1:6379> smembers myset3
1) "two"
2) "four"
3) "five"
127.0.0.1:6379> srandmember myset3
"five"
127.0.0.1:6379> srandmember myset3
"five"
127.0.0.1:6379> srandmember myset3
"four"
127.0.0.1:6379> srandmember myset3
"five"