Redis Set集合类型

set是无序不重复集合。

set的命令都是“s”开头的

1.利用sadd 命令添加元素

127.0.0.1:6379> sadd myset hello
(integer) 1
127.0.0.1:6379> sadd myset ckfuture
(integer) 1
127.0.0.1:6379> sadd myset loveckfuture
(integer) 1

 

 2.利用 Smembers 命令查看元素

127.0.0.1:6379> smembers myset
1) "loveckfuture"
2) "ckfuture"
3) "hello"

 

 4.利用sismember命令判断某一个值是否在set集合中

127.0.0.1:6379> sismember myset hello
(integer) 1

 

 5.利用scard命令获取set集合中的内容元素个数

127.0.0.1:6379> scard myset
(integer) 3

 

 6.利用srem命令移除set集合中的指定元素

127.0.0.1:6379> srem myset hello
(integer) 1
127.0.0.1:6379> smembers myset
1) "loveckfuture"
2) "ckfuture"

 

 7.利用 srandmember命令随机抽取一个元素

127.0.0.1:6379> srandmember myset
"ckfuture"
127.0.0.1:6379> srandmember myset
"ckfuture"

 

 8.利用spop 命令删除指定的key,随机删除key

127.0.0.1:6379> smembers myset
1) "loveckfuture"
2) "ckfuture"
127.0.0.1:6379> spop myset
"loveckfuture"
127.0.0.1:6379> smembers myset
1) "ckfuture"
127.0.0.1:6379>  

 

 9.利用smove 命令将一个指定的值移动到另外一个结合中

127.0.0.1:6379> smembers myset
1) "loveckfuture"
2) "ckfuture"
127.0.0.1:6379> smembers myset2
1) "set2"
127.0.0.1:6379> smove myset myset2 ckfuture
(integer) 1
127.0.0.1:6379> smembers myset
1) "loveckfuture"
127.0.0.1:6379> smembers myset2
1) "set2"
2) "ckfuture"
127.0.0.1:6379>   

 

 10.数字集合类:

①差集:sdiff命令

(integer) 1
127.0.0.1:6379> sadd key1 c
(integer) 1
127.0.0.1:6379> sadd key2 c
(integer) 1
127.0.0.1:6379> sadd key2 d
(integer) 1
127.0.0.1:6379> sadd key2 e
(integer) 1
127.0.0.1:6379> smembers key1
1) "b"
2) "a"
3) "c"
127.0.0.1:6379> smembers key2
1) "e"
2) "d"
3) "c"
127.0.0.1:6379> sdiff key1 key2
1) "a"
2) "b"

②交集:sinter命令

127.0.0.1:6379> sinter key1 key2
1) "c"

③并集:sunion命令

127.0.0.1:6379> sunion key1 key2
1) "c"
2) "a"
3) "b"
4) "e"
5) "d"

 应用场景:

微博:A用户将所有关注的人放在一个set集合中,将他的粉丝也放在一个结合中!

共同关注、共同爱好,二度好友(六度分割理论)

 

posted @ 2021-02-10 11:01  创客未来  阅读(79)  评论(0)    收藏  举报