一、概述

  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. 文献阅读 | Molecular Architecture of the Mouse Nervous System

    文章亮点: 按level来管理和分析数据,文章有不同stage,每个stage有不同subtype,这应该是一个真tree,而不只是一个进化树,文章里出现最多的进化树把所有的stage都整合了. 空间 ...

  2. 深入学习c++--智能指针(二) weak_ptr(打破shared_ptr循环引用)

    1. 几种智能指针 1. auto_ptr: c++11中推荐不使用他(放弃) 2. shared_ptr: 拥有共享对象所有权语义的智能指针 3. unique_ptr: 拥有独有对象所有权语义的智 ...

  3. 软件定义网络基础---OF-Config协议

    交换机与控制器继续通信前,是需要对其功能.特性以及资源进行配置才能进行工作,这些配置是如何实现的?是由专门的配置协议指导完成的 一:OF-Config协议 是OpenFlow交换机管理配置协议,是Op ...

  4. GWAS: 网页版的基因型填充(genotype imputation)

    在全基因组关联分析中,处理芯片数据时,必须走的一个流程就是基因型数据填充(imputation). 当然,如果你拿到的是全测序的数据,请忽略这一步. 下面直奔主题,怎么在网页版进行基因型填充. 1 进 ...

  5. 单元测试-测试技术(Unit Test)

    1.1白盒测试和单元测试的区别的论述: 1) 单元测试和白盒测试是不同的,虽然单元测试和白盒测试都是关注功能,虽然他们都需要代码支持,但是级别不同, 白盒测试关注的是类中一个方法的功能是更小的单位,但 ...

  6. c# .net 查找并安装CA根证书

    https CA根证书 用的是证书指纹来查找. 在用 collection.Find 之前 ,X509Store 一定要打开(Open),否则找到的数量(X509Certificate2Collect ...

  7. java-socket-demo的实现

    目录 前言 IO通讯模型 IO通讯模型简介 1. 阻塞式同步IO 2. 非阻塞式同步IO 3. 多路复用IO(阻塞+非阻塞) 4. 异步IO Java对IO模型的支持 注意点及实现方案 TCP粘包/拆 ...

  8. java程序cpu问题排查

    方法一: 转载:http://www.linuxhot.com/java-cpu-used-high.html 1.jps 获取Java进程的PID. 2.jstack pid >> ja ...

  9. Beta冲刺(3/4)

    队名:秃头小队 组长博客 作业博客 组长徐俊杰 过去两天完成的任务:学习了很多东西 Github签入记录 接下来的计划:继续学习 还剩下哪些任务:后端部分 燃尽图 遇到的困难:自己太菜了 收获和疑问: ...

  10. php面向对象(文件操作)

    文件操作 1.只能操作服务器的文件 2.文件包含目录和文件 判断文件类型 var_dump(filetype("../0529")); //返回文件的类型:目录dir 文件file ...