前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis数据类型之Set集合类型

Redis数据类型之Set集合类型

作者头像
兮动人
发布2021-06-11 15:35:33
4220
发布2021-06-11 15:35:33
举报
文章被收录于专栏:兮动人的博客

1.2. Set类型

1.2.1. 简介

  • Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
  • Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
  • 集合中最大的成员数为 2次方32 - 1 (4294967295, 每个集合可存储40多亿个成员)。 类似于JAVA中的 Hashtable集合
  • redis的集合对象set的底层存储结构特别神奇,底层使用了intset和hashtable两种数据结构存储的,intset我们可以理解为数组,hashtable就是普通的哈希表(key为set的值,value为null)。
  • intset内部其实是一个数组(int8_t coentents[]数组),而且存储数据的时候是有序的,因为在查找数据的时候是通过二分查找来实现的。

1.2.2. 命令

赋值语法:

  • SADD key member1 [member2] 向集合添加一个或多个成员

取值语法:

  • SCARD key 获取集合的成员数
  • SMEMBERS key 返回集合中的所有成员
  • SISMEMBER key member 判断 member 元素是否是集合 key 的成员(开发中:验证是否存在判断)
  • SRANDMEMBER key [count] 返回集合中一个或多个随机数

删除语法:

  • SREM key member1 [member2] 移除集合中一个或多个成员
  • SPOP key [count] 移除并返回集合中的一个随机元素
  • SMOVE source destination member 将 member 元素从 source 集合移动到 destination 集合

差集语法:

  • SDIFF key1 [key2] 返回给定所有集合的差集(左侧) ,获取集合中的差集(在集合1中存在,不在集合2中存在的元素)
  • SDIFFSTORE destination key1 [key2] 返回给定所有集合的差集并存储在 destination 中

交集语法:

  • SINTER key1 [key2] 返回给定所有集合的交集(共有数据) ,获取交集(在两个集合中都存在的元素)
  • SINTERSTORE destination key1 [key2] 返回给定所有集合的交集并存储在 destination 中

并集语法:

  • SUNION key1 [key2] 返回所有给定集合的并集 ,求并集(两个集合合并后,去掉重复的元素)
  • SUNIONSTORE destination key1 [key2] 所有给定集合的并集存储在 destination 集合中

1.2.3. 应用场景

常应用于:对两个集合间的数据[计算]进行交集、并集、差集运算

  1. 以非常方便的实现如共同关注、共同喜好、二度好友等功能。对上面的所有集合操作,你还可以使用不同的命令选择将结果返回给客户端还是存储到一个新的集合中。
  2. 利用唯一性,可以统计访问网站的所有独立 IP
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/06/09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.2. Set类型
    • 1.2.1. 简介
      • 1.2.2. 命令
        • 赋值语法:
        • 取值语法:
        • 删除语法:
        • 差集语法:
        • 交集语法:
        • 并集语法:
      • 1.2.3. 应用场景
      相关产品与服务
      云数据库 Redis®
      腾讯云数据库 Redis®(TencentDB for Redis®)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档