一、概述

  1. redis的set是string类型的无序集合
  2. 集合成员是唯一的,这就意味着集合中不能出现重复的数据。
  3. 集合中最大的成员数为2^32-1(4294967295,每个集合可存储40多亿个成员)

二、键的设置

  • 命令名称:sadd
  • 语法:sadd key member [member……]
  • 功能:
    • 将一个或多个member元素加入到集合key当中,已经存在于集合中的member元素将被忽略。
    • 假如key不存在,则创建一个只包含member元素做成员的集合。
    • 当key不是集合类型时,返回一个错误。
  • 返回值:
    • 被添加到集合中的新元素的数量,不包括被忽略的元素

三、键的查询

  • 命令名称:scard
  • 语法:scard key
  • 功能:
    • 返回集合key的基数(集合中元素的数量)。
  • 返回值:
    • 集合的基数。
    • 如果key不存在时,返回0
  • 命令名称:smembers
  • 语法:smembers key
  • 功能:
    • 返回集合key的所有成员。
    • 不存在的key被视为空集合
  • 返回值:
    • 集合中的所有成员
  • 命令名称:sismember
  • 语法:sismember key member
  • 功能:
    • 判断member元素是否集合key的成员
  • 返回值:
    • 如果member元素是集合的成员,返回1.
    • 如果member元素不是集合的成员,或key不存在,返回0
  • 命令名称:srandmember
  • 语法:srandmember key [count]
  • 功能:
    • 如果执行命令时,只提供了key参数,那么返回集合中的一个随机元素。
  • 返回值:
    • 只提供key参数是,返回一个元素;如果集合为空,返回你了。
    • 如果提供了count参数,那么返回一个数组;如果集合为空,返回空数组
  • 命令名称:sscan
  • 语法:sscan key cursor [MATCH pattern] [COUNT count]
  • 功能:
    • 用于迭代集合中的元素。
  • 返回值:
    • 集合成员

四、键之间的关系

  • 命令名称:sdiff
  • 语法:sdiff key [key……]
  • 功能:
    • 返回一个集合的全部成员,该集合是所有给定集合之间的差集。
    • 不存在的key被视为空集。
  • 返回值:
    • 一个包含差集成员的列表,返回第一个key中的
  • 命令名称:sdiffstore
  • 语法:SDIFFSTORE destination key [key ...]
  • 功能:
    • 这个命令的作用和sdiff类似,但它将结果保存到destination集合中,而不是简单地返回结果集。
    • 如果destination集合已经存在,则将其覆盖。
    • destination可以是key本身
  • 返回值:
    • 结果集中的元素数量
  • 命令名称:sinter
  • 语法:sinter key [key ...]
  • 功能:
    • 返回一个集合的全部成员,该集合是所有给定集合的交集。
    • 不存在的key被视为空集。
    • 当给定集合当中有一个空集是,结果也为空集
  • 返回值:
    • 交集成员的列表
  • 命令名称:sinterstore
  • 语法:sinterstore destination key [key ...]
  • 功能:
    • 这个命令的作用和sinterstore类似,但它将结果保存到destination集合中,而不是简单地返回结果集。
    • 如果destination集合已经存在,则将其覆盖。
    • destination可以是key本身
  • 返回值:
    • 结果集中的元素数量
  • 命令名称:sunion
  • 语法:sunion key [key ...]
  • 功能:
    • 返回一个集合的全部成员,该集合是所有给定集合的并集。
    • 不存在的key被视为空集
  • 返回值:
    • 并集成员的列表
  • 命令名称:sunionstore
  • 语法:sunion destination key [key ...]

五、删除

  • 命令名称:spop
  • 语法:spop key
  • 功能:
    • 移除并返回集合中的一个随机元素
  • 返回值:
    • 被移除的随机元素。
    • 当key不存在或key是空集时,返回nil
  • 命令名称:srem
  • 语法:sunion key member [member ...]
  • 功能:
    • 移除集合key中的一个或多个member元素,不存在的member元素会被忽略。
    • 当key不是集合类型,返回一个错误
  • 返回值:
    • 被成功移除的元素的数量,不包括被忽略的元素
  • 命令名称:smove
  • 语法:smove source destination member
  • 功能:
    • 将member元素从source集合移动到destination集合。
    • smove是原子性操作。
    • 如果source集合不存在或不包含指定的member元素,则smove命令不执行任何操作,仅返回0。
    • 当destination集合已经包含member元素时,smove命令只是简单的将source集合中的member元素删除
  • 返回值:
    • 如果member元素被成功删除,返回1。
    • 如果member元素不是source集合的成员,并且没有任何操作对destination集合执行,那么返货0。
    • 当source或destination不是集合类型时,返回一个错误

redis集合数据类型---SET的更多相关文章

  1. 面试官:Redis中集合数据类型的内部实现方式是什么?

    虽然已经是阳春三月,但骑着共享单车骑了这么远,还有有点冷的.我搓了搓的被冻的麻木的手,对着前台的小姐姐说:"您好,我是来面试的."小姐姐问:"您好,您叫什么名字?&quo ...

  2. Redis常用数据类型介绍、使用场景及其操作命令

    Redis常用数据类型介绍.使用场景及其操作命令 本文章同时也在cpper.info发布. Redis目前支持5种数据类型,分别是: 1.String(字符串) 2.List(列表) 3.Hash(字 ...

  3. Redis不同数据类型的的数据结构实现

    我们知道Redis支持五种数据类型, 分别是字符串.哈希表(map).列表(list).集合(set)和有序集合,和Java的集合框架类似,不同数据类型的数据结构实也是不一样的. >>Re ...

  4. Redis笔记(三)Redis的数据类型

    前面说过,Redis的一大特性是支持丰富的数据类型, 这为更多的应用场景提供了可能. Redis有五种数据类型,包括string,list,set,sorted set和hash,注意,Redis的数 ...

  5. Redis常用数据类型

    Redis常用数据类型 转载自:http://blog.sina.com.cn/s/blog_7f37ddde0101021q.html     Redis最为常用的数据类型主要有以下五种: ●Str ...

  6. Redis基本数据类型

    -------------------Redis基本数据类型------------------- 1.String 字符串     1.概念         1.String 是redis最基本的类 ...

  7. Redis常用数据类型和事物以及并发

    Redis数据类型 基本类型(String int): 如 set key value .get key 等 所有命令都是按照 key value keys * 可以将全部数据列出,其中后面的 &qu ...

  8. Redis五大数据类型的常用操作

    在上一篇博文<centos安装redis>中,已经详细介绍了如何在centos上安装redis,今天主要介绍下Redis五大数据类型及其五大数据类型的相关操作. Redis支持五种数据类型 ...

  9. Redis各种数据类型的应用场景

    redis是一种key values形式的非关系型数据库,通过内存存储,也可以把数据持久化到本地文件中. redis支持丰富的数据类型,String,list,set,zset,hash,下面说一下各 ...

随机推荐

  1. Spring 中开启Mybatis缓存

    mybatis的一级缓存默认是开启的,二级缓存开启的方法: 在每个Mapper.xml文件中加入一个

  2. 2019年逾期率上升_24家头部P2P平台最新运营数据解读:8家近一年逾期率走势曝光

    python信用评分卡建模(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_ca ...

  3. PHP技术知识点整理

    1.解释mvc (1)mvc即 模型model,视图view,控制器controller:是一种模型,是一种编程思想,就是把一个应用的输入.输出.数据处理分开,分解耦合(2)A..视图,数据采集和处理 ...

  4. [原][C++]拒绝智能指针与指针混用,常见智能指针问题

    公司一个非专科的程序在开发过程中有些毛躁,但是又想使用些新学的技术 这天他正调试呢,发现有一个BUG怎么也找不到原因. 用的好好的内存怎么就突然被删除了呢,好好的指针,怎么就访问越界了呢 没办法,他只 ...

  5. jenkins用户和权限管理

    添加用户 进入管理界面,选择manage users,添加用户 将人和角色绑定 用户和项目绑定 角色管理 可以针对不同的站点对不同的人赋权 添加角色并赋权 将角色赋权给对应的用户 使用新添加的这个用户 ...

  6. vs Qt mysql 打包程序 Driver not loaded Driver not loaded

    vs下开发Qt连接mysql程序,开发过程中操作MySQL没有问题,但打包以后安装在别的电脑上发现竟然无法连接MySQL,打包的时候,所需的libmysql.dll等dll文件拷贝到exe同级目录了, ...

  7. python import注意事项

    # 基本概念 ## 模块&包简介 模块:所谓模块就是一个.py文件,用来存放变量,方法的文件,便于在其他python文件中导入(通过import或from).包(package): 包是更大的 ...

  8. Spring cloud微服务安全实战-5-5实现授权码认证流程(1)

    目前为止已经完成了完整的用户逻辑 目前的问题是,用户在登陆的时候,用户名提交的是给前端服务器的.每个前端服务器的开发人员都可能接触到前端的用户名密码. 每一个客户端应用都要去处理登陆的逻辑,一单我的登 ...

  9. iOS扩大按钮的点击范围

    // 重写此方法将按钮的点击范围扩大 - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event { CGRect bounds = s ...

  10. matlab绘制直方图的方法

    直接上代码,利用hist绘制频次直方图和频率直方图... %rand Fs=1000;N=10000; t=0:1/Fs:(N-1)/Fs; X1=rand(1,length(t)); subplot ...