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集合中,将他的粉丝也放在一个结合中!
共同关注、共同爱好,二度好友(六度分割理论)