Redis学习笔记(六)——数据结构之Set
一、介绍
Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
Redis中集合是通过哈希表实现的,所以添加、删除、查找的复杂度都是O(1)。
集合中最大的成员数为 (4294967295, 每个集合可存储40多亿个成员)。
基本命令:
- 增加/更新
sadd key member1 [member2 ...] (向集合添加一个或多个成员)
- 查询
scard key (获取集合的成员数)
smembers key (返回集合中的所有成员)
srandmember key [count] (返回集合中一个或多个随机数)
sscan key cursor [match pattern] [count count] (迭代集合中的元素)
- 判断
sismember key member (判断member元素是否是集合key的成员)
- 删除/移动
srem key member1 [member2 ...] (移除集合中一个或多个成员)
spop key (移除并返回集合中的一个随机元素)
smove source destination member (将member元素从source集合移动到destination集合)
- 差集/并集
sdiff key1 [key2] (返回给定所有集合的差集)
sdiffstore destination key1 [key2] (返回给定所有集合的差集并存储在destination中)
sinter key1 [key2] (返回给定所有集合的交集)
sinterstore destination key1 [key2] (返回给定所有集合的交集并存储在destination中)
sunion key1 [key2] (返回所有给定集合的并集)
sunionstore destination key1 [key2] (所有给定集合的并集存储在destination集合中)
二、操作
- 增加
1、sadd key member1 [member2 ...] (向集合添加一个或多个成员)

如果集合中已存在已有的元素,则添加返回0

- 查询
1、scard key (获取集合的成员数)

2、smembers key (返回集合中的所有成员)

3、srandmember key [count] (返回集合中一个或多个随机数)

4、sscan key cursor [match pattern] [count count] (迭代集合中的元素)
判断集合元素是否存在(0: 不存在, 1: 存在)

- 判断
1、sismember key member (判断member元素是否是集合key的成员)

- 删除/移动
1、srem key member1 [member2 ...] (移除集合中一个或多个成员)
如果删除的元素不存在,返回0,删除成功返回1

2、spop key [count] (移除并返回集合中的一个或多个随机元素)

3、smove source destination member (将member元素从source集合移动到destination集合)

如果集合中元素不存在,返回0

- 差集/并集
1、sdiff key1 [key2] (返回给定所有集合的差集)
获取两个集合的差集(不同的元素)

2、sdiffstore destination key1 [key2] (返回给定所有集合的差集并存储在destination中)
set1 和 set2 的差集

返回set1和set2集合的差集并存储在set3中:

3、sinter key1 [key2] (返回给定所有集合的交集)
获取两个集合的交集(相同的元素)

4、sinterstore destination key1 [key2] (返回给定所有集合的交集并存储在destination中)

5、sunion key1 [key2] (返回所有给定集合的并集)
并集的结果:给定的集合里面的元素只能出现一次

6、sunionstore destination key1 [key2] (所有给定集合的并集存储在destination集合中)

Redis学习笔记(六)——数据结构之Set的更多相关文章
- Redis学习笔记六:持久化实验(AOF,RDB)
作者:Grey 原文地址:Redis学习笔记六:持久化实验(AOF,RDB) Redis几种持久化方案介绍和对比 AOF方式:https://blog.csdn.net/ctwctw/article/ ...
- Redis学习笔记六:独立功能之 Lua 脚本
Redis 2.6 开始支持 Lua 脚本,通过在服务器环境嵌入 Lua 环境,Redis 客户端中可以原子地执行多个 Redis 命令. 使用 eval 命令可以直接对输入的脚本求值: 127.0. ...
- Java基础学习笔记(六) - 数据结构和集合
一.认识数据结构 1.数据结构有什么用? 合理的使用数据结构,可以更方便的查找存储数据. 2.常见的数据结构 数据存储常用结构有:栈.队列.数组.链表和红黑树. 栈:堆栈(stack),它是运算受限的 ...
- Redis学习笔记一:数据结构与对象
1. String(SDS) Redis使用自定义的一种字符串结构SDS来作为字符串的表示. 127.0.0.1:6379> set name liushijie OK 在如上操作中,name( ...
- Redis学习笔记(二) Redis 数据类型
Redis 支持五种数据类型:string(字符串).list(列表).hash(哈希).set(集合)和 zset(有序集合),接下来我们讲解分别讲解一下这五种类型的的使用. String(字符串) ...
- redis 学习笔记(6)-cluster集群搭建
上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...
- Redis学习笔记~目录
回到占占推荐博客索引 百度百科 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合). ...
- (转)redis 学习笔记(1)-编译、启动、停止
redis 学习笔记(1)-编译.启动.停止 一.下载.编译 redis是以源码方式发行的,先下载源码,然后在linux下编译 1.1 http://www.redis.io/download 先 ...
- Redis学习笔记(2)——Redis的下载安装部署
一.下载Redis Redis的官网下载页上有各种各样的版本,如图 但是官网下载的Redis项目不正式支持Windows.如果需要再windows系统上部署,要去GitHub上下载.我下载的是Redi ...
- Redis学习笔记(3)——Redis的命令大全
Redis是一种nosql数据库,常被称作数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted se ...
随机推荐
- 搜索引擎学习(三)Lucene查询索引
一.查询理论 创建查询:构建一个包含了文档域和语汇单元的文档查询对象.(例:fileName:lucene) 查询过程:根据查询对象的条件,在索引中找出相应的term,然后根据term找到对应的文档i ...
- org.springframework.beans.factory.BeanCurrentlyInCreationException
昨天下午的时候,给公司的项目打了个版,发现一直报502错误了,最后在服务器日志上看了一下异常信息,发现报了以下异常信息,导致项目启动就报错了(pc:该项目在我电脑本地启动不报错,之前也没报错). 错误 ...
- Centos-网络下载文件-wget
wget 指定URL从网络上下载某个文件,需要网络连接 相关选项 -nc 不覆盖同名文件 -q 安静下载,无输出 -v 显示下载详情 -O 指定保存目录或重命名下载文件名 -c 断点续 ...
- heap是堆,stack是栈
1.栈是用来存放基本类型的变量和引用类型的变量,堆用来存放new出来的对象和数组. 2.栈的存取速度快,但不灵活.堆的存取速度慢,但是存取灵活,空间动态分配. 3.栈在建立在连续的物理位置上,而堆只需 ...
- 为啥你用@JsonFormat注解时,LocalDateTime会反序列化失败?
写在前面 最近,有个小伙伴问我:我在SpringBoot项目中,使用@JsonFormat注解标注LocalDateTime类型的字段时,LocalDateTime反序列化失败,这个我该怎么处理呢?别 ...
- 使用Redis做消息队列
基于内存的单线程数据库,使Redis的线程安全性极高.而Redis的双向链表数据类型(List)天生就可作为消息队列存储消息. 在这里就不说消息队列的等等一些优点.但是补充一下Redis的List类型 ...
- 上部:问道 | R语言数据分析(北京邮电大学)自整理笔记
第1章 气象万千 数以等观 数据分析:发现数据背后的规律 等号的重要性,建立模型 第2章所谓学习.归类而已 2.1所谓学习,归类而已(1) ps:机器学习只是归归类? 有监督学习--分类:无监督学习- ...
- This is Riv3r1and.
总是要弄个博客来搞的嘛.
- java安全编码指南之:方法编写指南
目录 简介 不要在构造函数中调用可以被重写的方法 不要在clone()方法中调用可重写的方法 重写equals()方法 hashCode和equals compareTo方法的实现 简介 java程序 ...
- Java知识日常收集整理001Java获取变量的数据类型的实现方法
一.具体情况区分 对于简单类型变量,是无法直接获得变量类型的:要想获取,必须自定义函数进行返回. 对于包装类型变量,是可以直接获得的,变量名称.getClass().getName(); 二.代码实现 ...