一、sinter 、sunion 、sdiff
redis 支持 set集合的数据存储,其中有三个比较特殊的方法:
- sinter key [key …] 查看一个集合的全部成员,该集合是所有给定集合的交集。
- sunion key [key …] 查看一个集合的全部成员,该集合是所有给定集合的并集。
- sdiff key [key …] 查看所有给定 key 与第一个 key 的差集
1.1、sinter 交集的示例
redis> smembers group_1 1) "li lei" 2) "tom" 3) "jack" redis> smembers group_2 1) "han meimei" 2) "jack" redis> sinter group_1 group_2 # 取的是交集的数据 1) "jack"
1.2、sunion 并集的示例
redis> smembers songs 1) "billie jean" redis> smembers my_songs 1) "believe me" redis> sunion songs my_songs # 取的是集合的并集数据据 1) "billie jean" 2) "believe me"
1.3、sdiff 差集的示例
redis> smembers peter_movies 1) "bet man" 2) "start war" 3) "2012" redis> smembers joe_movies 1) "hi, lady" 2) "fast five" 3) "2012" redis> sdiff peter_movies joe_movies # 取的是两个集合的差集的数据 1) "bet man" 2) "start war"
二、sinterstore、sunionstore、sdiffstore
- sinterstore destination key [key …] 将 交集 数据存储到某个对象中
- sunionstore destination key [key …] 将 并集 数据存储到某个对象中
- sdiffstore destination key [key …] 将 差集 数据存储到某个对象中
2.1、sinterstore 交集的示例
redis> smembers songs 1) "good bye joe" 2) "hello,peter" redis> smembers my_songs 1) "good bye joe" 2) "falling" redis> sinterstore song_interset songs my_songs # 将交集的数据存储到 song_interset 对象中 (integer) 1 redis> smembers song_interset # 查看 song_interset 对象中的 所有数据 1) "good bye joe"
2.2、sunionstore 并集的示例
redis> smembers nosql 1) "mongodb" 2) "redis" redis> smembers sql 1) "sqlite" 2) "mysql" redis> sunionstore db nosql sql # 将并集的数据存储到 db 对象中 (integer) 4 redis> smembers db # 查看 db 对象中的 所有数据 1) "mysql" 2) "sqlite" 3) "mongodb" 4) "redis"
2.3、sdiffstore 差集的示例
redis> smembers joe_movies 1) "hi, lady" 2) "fast five" 3) "2012" redis> smembers peter_movies 1) "bet man" 2) "start war" 3) "2012" redis> sdiffstore joe_diff_peter joe_movies peter_movies # 将差集的数据存储到 joe_diff_peter 对象中 (integer) 2 redis> smembers joe_diff_peter # 查看 joe_diff_peter 对象中的 所有数据 1) "hi, lady" 2) "fast five"
到此这篇关于redis 交集、并集、差集的具体使用的文章就介绍到这了,更多相关redis 交集、并集、差集内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!