4、Set 类型 ( Hashset,不重复,无序 )
Set 常用操作
// Set常用操作
// 1、往集合key中存入元素,元素存在则忽略,若key不存在则新建
SADD key member [member ...]
// 2、从集合key中删除元素
SREM key member [member ...]
// 3、获取集合key中所有元素
SMEMBERS key
// 4、获取集合key的元素个数
SCARD key
// 5、判断member元素是否存在于集合key中
SISMEMBER key member
// count表示返回几个随机数;如果count数超过集合元素个数,则返回所有值;如果写的示负数,如-3,表示返回可能重复的三个数
// 6、从集合key中选出count个元素,元素不从key中删除(返回集合中一个或多个随机数)
SRANDMEMBER key [count]
// 7、从集合key中选出count个元素,元素从key中删除
SPOP key [count]
// 移除并返回集合中的一个随机元素
SPOP key
Set 运算操作
// 1、交集运算
SINTER key [key ...]
// 2、将交集结果存入新集合 destination 中
SINTERSTORE destination key [key ...]
// 3、并集运算
SUNION key [key ...]
// 4、将并集结果存入新集合 destination 中
SUNIONSTORE destination key [key ...]
// 5、差集运算
SDIFF key [key ...]
// 6、将差集结果存入新集合 destination 中
SDIFFSTORE destination key [key ...]
适用场景
场景1、抽奖活动
- 用户 ID,立即参与按钮,
sadd key 用户 ID(添加改用户信息进入) - 显示已经多少人参与了,
SCARD key - 从 set 中任意选取 N 个中奖人,
SRANDMEMBER key2 为随机抽奖 2 个人,元素不重复 - SPOP key 3 为随机抽奖 3 个人,元素会删除
场景2、点赞,收藏,标签
- 点赞:
SADD like:{消息ID}{用户ID} - 取消点赞:
SREM like:{消息ID}{用户ID} - 检查用户是否点过赞:
SISMEMBER like:{消息ID}{用户ID} - 获取点赞的用户列表:
SMEMBERS like:{消息ID} - 获取点赞用户数:
SCARD like:{消息ID}
集合操作
SINTER set1 set2 set3->{c}
SUNION set1 set2 set3->{a,b,c,d,e}
SDIFF set1 set2 set3->{a}
1、张三关注的人:
zsSet -> {lisi,wangwu}
2、李四关注的人:
lisiSet -> {zs,wangwu,zhaosi,wangqi}
3、王五关注的人:
wangwuSet -> {zs,lisi,zhaosi,lisan}
4、张三和李四的共同关注:
SINTER zsSet lisiSet --> {wangwu}
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...