- 无序集合,元素类型为string类型,元素具有唯一性,不重复 # 命令 ## 设置 - 添加元素 ``` sadd 键 数据1 数据2 ``` ## 获取 - 返回key集合中所有元素 ``` smembers 键 ``` - 返回集合元素个数 ``` scard 键 ``` ## 其他 - 求多个集合的交集 ``` sinter 键1 键2 ``` - 求多个集合的差集 ``` sdiff 键1 键2 ``` - 求多个集合的合集 ``` sunion 键1 键2 ``` - 判断元素是否在集合中 - 存在返回1,不存在则返回0 ``` sismember 键1 元素 ``` # 应用场景 - 抽奖场景 ```redis # 用户参与 sadd bonus:1 user1 # 查看参与用户 scard bounds:1 # 抽奖(从set中任意选取2个中奖人,并且不会从set中删除) srandmember bounds:1 2 # 抽奖(从set中任意选取2个中奖人,并且会从set中删除) spop bounds:1 3 ``` - 共同好友场景 ```redis # 给user1增加几个好友 sadd user:1:firends user3 sadd user:1:firends user4 sadd user:1:firends user5 # 给user2增加几个好友 sadd user:2:firends user3 sadd user:2:firends user7 sadd user:2:firends user5 # 获取两个用户的共同好友 # 求两个集合的交集获取共同好友 sinter user:1:friends user:2:friends # 将两个用户的共同好友存入到common:1:2中 sinterstore common:1:2 user:1:friends user:2:friends ``` - 好友推荐 ```redis # 给user1增加几个好友 sadd user:1:firends user3 sadd user:1:firends user4 sadd user:1:firends user5 # 给user2增加几个好友 sadd user:2:firends user3 sadd user:2:firends user7 sadd user:2:firends user5 # 给user2推荐user1的好友 # 求两个集合的差集给对方推荐好友 sdiff user:1:friends user:2:friends # 将两个集合的差集存入到recommon:2:1中 sdiffstore recommon:2:1 user:1:friends user:2:friends ```