Redis set集合类型

  • redis的set是string类型的无序集合。
  • set元素最大可以包含(2的32次方-1)个元素。

关于set集合类型除了基本的添加删除操作,其他有用的操作还包含集合的取并集(union),交集(intersection),差集(difference)。通过这些操作可以很容易的实现sns中的好友推荐功能(该类型应用场合) 。


注意:每个集合中的各个元素不能重复。

set类型操作:

sadd key member 添加一个string元素到key对应的set集合中,成功返回1,如果元素已经在集合中返回0,key对应的set不存在返回错误
srem key member [member] 从key对应set中移除给定元素,成功返回1
smove p1 p2 member 从p1对应set中移除member并添加到p2对应set 中
scard key 返回set的元素个数
sismember key member 判断member是否在set中
sinter key1 key2...keyN 返回所有给定key的交集
sunion key1 key2...keyN 返回所有给定key的并集
sdiff key1 key2...keyN

返回所有给定key的差集

smembers key 返回key对应set的所有元素,结果是无序的

例:QQ好友推荐

创建rickFri的set集合类型数据,内部有5个元素:

127.0.0.1:6379[1]> sadd rickFri liming
(integer) 1
127.0.0.1:6379[1]> sadd rickFri wangpeng
(integer) 1
127.0.0.1:6379[1]> sadd rickFri zhaohai
(integer) 1
127.0.0.1:6379[1]> sadd rickFri bai3
(integer) 1
127.0.0.1:6379[1]> sadd rickFri bai4
(integer) 1
127.0.0.1:6379[1]> keys *
1) "login"
2) "rickFri"
127.0.0.1:6379[1]> type rickFri
set
127.0.0.1:6379[1]> 

再创建bobFri的set集合类型数据,内部有5个元素:

127.0.0.1:6379[1]> sadd bobFri liuyu
(integer) 1
127.0.0.1:6379[1]> sadd bobFri hanhua
(integer) 1
127.0.0.1:6379[1]> sadd bobFri qikai
(integer) 1
127.0.0.1:6379[1]> sadd bobFri bai3
(integer) 1
127.0.0.1:6379[1]> sadd bobFri bai4
(integer) 1
127.0.0.1:6379[1]> keys *
1) "login"
2) "rickFri"
3) "bobFri"
127.0.0.1:6379[1]> 

集合取交集、并集

127.0.0.1:6379[1]> sinter rickFri bobFri
1) "bai3"
2) "bai4"
127.0.0.1:6379[1]> sunion rickFri bobFri
1) "bai3"
2) "zhaohai"
3) "qikai"
4) "liuyu"
5) "wangpeng"
6) "liming"
7) "bai4"
8) "hanhua"
127.0.0.1:6379[1]> 

 两个集合互取差集

127.0.0.1:6379[1]> sdiff rickFri bobFri
1) "zhaohai"
2) "liming"
3) "wangpeng"
127.0.0.1:6379[1]> sdiff bobFri rickFri
1) "qikai"
2) "liuyu"
3) "hanhua"
127.0.0.1:6379[1]> 

转载请注明出处:BestEternity亲笔。

猜你喜欢

转载自blog.csdn.net/BestEternity/article/details/84326489