跳至主要內容

2.6 Redis数据类型_Set 🎉

刘春龙...大约 1 分钟数据库redis

2.6 Redis数据类型_Set 🎉

与List类似是一个列表功能,但Set是自动排重的,当需要存储一个列表数据,又不希望出现重复数据时,Set是一个很好的选择。

Set是String类型的无序集合,它底层其实是一个value为null的hash表,所以添加、删除、查找的时间复杂度都是O(1)。

  • sadd

将一个或多个元素添加到集合key中,已经存在的元素将被忽略。

sadd k1 v1 v2 v2 v3 v4 v5 v6    #最终只有v1 v2 v3 v4 v5 v6
  • smembers

取出该集合的所有元素。

smembers k1
  • sismember

判断集合key中是否含有value元素,如有返回1,否则返回0。

sismember k1 v1 
  • scard

返回该集合的元素个数。

scard k1
  • srem

删除集合中的一个或多个成员元素,不存在的成员元素会被忽略。

srem k1 v1 v2
  • spop

随机删除集合中一个元素并返回该元素。

spop key
  • srandmember

随机取出集合中count个元素,但不会删除。

srandmember k1 2 
  • smove
    将value元素从sourcekey集合移动到destinationkey集合中。
smove k1 k2 v5     # 将元素v5从集合k1中移动到集合k2

提示

如果 sourcekey集合不存在或不包含指定的 value元素,则 smove 命令不执行任何操作,仅返回 0 。

  • sinter
    返回两个集合的交集元素。
sinter key1 key2
  • sunion
    返回两个集合的并集元素。
sunion k1 k2
  • sdiff
    返回两个集合的差集元素(key1中的,不包含key2)
sdiff k1 k2

使用场景

  • 黑白名单
  • 随机展示
  • 好友
  • 关注人
  • 粉丝
  • 感兴趣的人集合
上次编辑于:
贡献者: 刘春龙
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.7