Redis(七)Redis中的Set

Redis的基本数据结构set

🗃️ set的定义

Set 类型是一个无序并唯一的键值集合,它的存储顺序不会按照插入的先后顺序进行存储。

Set数据结构示意图

📋 set的常见命令

  • 添加元素

    • SADD KEY_NAME VALUE1..VALUEN :将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。返回被添加到集合中的新元素的数量。
    • SMOVE SOURCE DESTINATION MEMBER :将指定成员 member 元素从 source 集合移动到 destination 集合。
  • 移除元素

    • SPOP key [count] :移除集合中的指定 key 的一个或多个随机元素。返回被移除的随机元素,当集合不存在或是空集时,返回 nil。
    • SREM KEY MEMBER1..MEMBERN :移除集合中的一个或多个成员元素,不存在的成员元素会被忽略。
  • 获取元素

    • SMEMBERS key :返回集合中的所有成员。
    • SISMEMBER KEY VALUE :判断成员元素是否是集合的成员。
  • 集合运算

    • SDIFF FIRST_KEY OTHER_KEY1..OTHER_KEYN :计算差集。
      • SDIFFSTORE destination key [key ...]
    • SINTER KEY KEY1..KEYN :计算交集。
      • SINTERSTORE destination key [key ...]
    • SUNION KEY KEY1..KEYN :计算并集。
      • SUNIONSTORE destination key [key ...]

🧱 底层实现

Set 类型的底层数据结构是由哈希表或整数集合实现的:

  • 如果集合中的元素都是整数且元素个数小于 512 (默认值,set-maxintset-entries 配置)个,Redis 会使用整数集合作为 Set 类型的底层数据结构;
  • 如果集合中的元素不满足上面条件,则 Redis 使用哈希表作为 Set 类型的底层数据结构。
最后更新于 2026-05-09 09:22 UTC
그 경기 끝나고 좀 멍하기 있었는데 여러분 이제 살면서 여러가
使用 Hugo 构建
主题 StackJimmy 设计