redis集合数据类型---SET
一、概述
- redis的set是string类型的无序集合
- 集合成员是唯一的,这就意味着集合中不能出现重复的数据。
- 集合中最大的成员数为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的更多相关文章
- 面试官:Redis中集合数据类型的内部实现方式是什么?
虽然已经是阳春三月,但骑着共享单车骑了这么远,还有有点冷的.我搓了搓的被冻的麻木的手,对着前台的小姐姐说:"您好,我是来面试的."小姐姐问:"您好,您叫什么名字?&quo ...
- Redis常用数据类型介绍、使用场景及其操作命令
Redis常用数据类型介绍.使用场景及其操作命令 本文章同时也在cpper.info发布. Redis目前支持5种数据类型,分别是: 1.String(字符串) 2.List(列表) 3.Hash(字 ...
- Redis不同数据类型的的数据结构实现
我们知道Redis支持五种数据类型, 分别是字符串.哈希表(map).列表(list).集合(set)和有序集合,和Java的集合框架类似,不同数据类型的数据结构实也是不一样的. >>Re ...
- Redis笔记(三)Redis的数据类型
前面说过,Redis的一大特性是支持丰富的数据类型, 这为更多的应用场景提供了可能. Redis有五种数据类型,包括string,list,set,sorted set和hash,注意,Redis的数 ...
- Redis常用数据类型
Redis常用数据类型 转载自:http://blog.sina.com.cn/s/blog_7f37ddde0101021q.html Redis最为常用的数据类型主要有以下五种: ●Str ...
- Redis基本数据类型
-------------------Redis基本数据类型------------------- 1.String 字符串 1.概念 1.String 是redis最基本的类 ...
- Redis常用数据类型和事物以及并发
Redis数据类型 基本类型(String int): 如 set key value .get key 等 所有命令都是按照 key value keys * 可以将全部数据列出,其中后面的 &qu ...
- Redis五大数据类型的常用操作
在上一篇博文<centos安装redis>中,已经详细介绍了如何在centos上安装redis,今天主要介绍下Redis五大数据类型及其五大数据类型的相关操作. Redis支持五种数据类型 ...
- Redis各种数据类型的应用场景
redis是一种key values形式的非关系型数据库,通过内存存储,也可以把数据持久化到本地文件中. redis支持丰富的数据类型,String,list,set,zset,hash,下面说一下各 ...
随机推荐
- Spring 中开启Mybatis缓存
mybatis的一级缓存默认是开启的,二级缓存开启的方法: 在每个Mapper.xml文件中加入一个
- 2019年逾期率上升_24家头部P2P平台最新运营数据解读:8家近一年逾期率走势曝光
python信用评分卡建模(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_ca ...
- PHP技术知识点整理
1.解释mvc (1)mvc即 模型model,视图view,控制器controller:是一种模型,是一种编程思想,就是把一个应用的输入.输出.数据处理分开,分解耦合(2)A..视图,数据采集和处理 ...
- [原][C++]拒绝智能指针与指针混用,常见智能指针问题
公司一个非专科的程序在开发过程中有些毛躁,但是又想使用些新学的技术 这天他正调试呢,发现有一个BUG怎么也找不到原因. 用的好好的内存怎么就突然被删除了呢,好好的指针,怎么就访问越界了呢 没办法,他只 ...
- jenkins用户和权限管理
添加用户 进入管理界面,选择manage users,添加用户 将人和角色绑定 用户和项目绑定 角色管理 可以针对不同的站点对不同的人赋权 添加角色并赋权 将角色赋权给对应的用户 使用新添加的这个用户 ...
- vs Qt mysql 打包程序 Driver not loaded Driver not loaded
vs下开发Qt连接mysql程序,开发过程中操作MySQL没有问题,但打包以后安装在别的电脑上发现竟然无法连接MySQL,打包的时候,所需的libmysql.dll等dll文件拷贝到exe同级目录了, ...
- python import注意事项
# 基本概念 ## 模块&包简介 模块:所谓模块就是一个.py文件,用来存放变量,方法的文件,便于在其他python文件中导入(通过import或from).包(package): 包是更大的 ...
- Spring cloud微服务安全实战-5-5实现授权码认证流程(1)
目前为止已经完成了完整的用户逻辑 目前的问题是,用户在登陆的时候,用户名提交的是给前端服务器的.每个前端服务器的开发人员都可能接触到前端的用户名密码. 每一个客户端应用都要去处理登陆的逻辑,一单我的登 ...
- iOS扩大按钮的点击范围
// 重写此方法将按钮的点击范围扩大 - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event { CGRect bounds = s ...
- matlab绘制直方图的方法
直接上代码,利用hist绘制频次直方图和频率直方图... %rand Fs=1000;N=10000; t=0:1/Fs:(N-1)/Fs; X1=rand(1,length(t)); subplot ...