redis: Set集合类型(五)
Set里面的值是不能重复的
Set设置值(头部):sadd myset hello
Set获取值:smembers myset
检查Set是否包含某个元素:sismember myset hello
127.0.0.1:6379> sadd myset hello #给myset添加元素
(integer) 1
127.0.0.1:6379> sadd myset world
(integer) 1
127.0.0.1:6379> smembers myset #获取myset的元素
1) "world"
2) "hello"
127.0.0.1:6379> sismember myset hello
(integer) 1
查看Set包含的元素个数:scard myset
127.0.0.1:6379> smembers myset
1) "world"
2) "hello"
127.0.0.1:6379> scard myset #查看myset包含的元素个数
(integer) 2
移除Set中某个元素:srem myset hello
127.0.0.1:6379> smembers myset
1) "world"
2) "hello"
127.0.0.1:6379> srem myset hello #从myset中移除hello元素
(integer) 1
127.0.0.1:6379> smembers myset
1) "world"
随机抽取Set中的元素:srandmember myset
127.0.0.1:6379> smembers myset
1) "lenovo"
2) "sanxing"
3) "iphone"
4) "htc"
127.0.0.1:6379> srandmember myset
"htc"
127.0.0.1:6379> srandmember myset #随机抽取一个元素
"htc"
127.0.0.1:6379> srandmember myset
"sanxing"
127.0.0.1:6379> srandmember myset
"lenovo"
127.0.0.1:6379> srandmember myset
"htc"
127.0.0.1:6379> srandmember myset
"htc"
127.0.0.1:6379> srandmember myset
"iphone"
127.0.0.1:6379> srandmember myset 2 #随机抽取指定数量的元素
1) "sanxing"
2) "lenovo"
随机删除Set中的元素:spop myset
127.0.0.1:6379> smembers myset
1) "lenovo"
2) "sanxing"
3) "iphone"
4) "htc"
127.0.0.1:6379> spop myset #随机删除一个元素
"htc"
127.0.0.1:6379> spop myset #随机删除一个元素
"sanxing"
127.0.0.1:6379> smembers myset
1) "lenovo"
2) "iphone"
将指定元素从一个Set集合移动到另一个Set集合:smove myset otherset iphone
127.0.0.1:6379> smembers myset
1) "lenovo"
2) "iphone"
127.0.0.1:6379> smove myset otherset iphone #把iphone元素从myset移动到otherset集合中
(integer) 1
127.0.0.1:6379> smembers myset
1) "lenovo"
127.0.0.1:6379> smembers otherset
1) "iphone"
差集:sdiff k1 k2
交集:sinter k1 k2
并集:sunion k1 k2
127.0.0.1:6379> smembers k1
1) "c"
2) "a"
3) "b"
127.0.0.1:6379> smembers k2
1) "d"
2) "c"
3) "e"
127.0.0.1:6379> sdiff k1 k2 #查看k1对比k2集合的差集
1) "a"
2) "b"
127.0.0.1:6379> sinter k1 k2 #查看k1与k2集合的交集 比如:查看共同好友
1) "c"
127.0.0.1:6379> sunion k1 k2 #查看k1与k2集合的并集
1) "b"
2) "c"
3) "a"
4) "d"
5) "e"