一、Redis之Set简介

1. Set是String类型的无序集合(元素成员唯一)。

2. Set是通过hash表实现的,添加、删除、查找的复杂度都是O(1)。

3. 每个集合最大成员数为232-1(40多亿)个。

二、Redis之Set命令行操作

Sadd:将一个或多个元素加入集合,已经存在集合中的元素则忽略。若集合不存在则先创建,若key不是集合类型则返回错误。

Smembers:返回集合中所有成员。

Scard:返回集合中元素的数量。

Spop:移除并返回集合中的一个或多个随机元素。(count不能为负数)

Srandmember:返回集合中的一个或多个随机成员元素,返回元素的数量和情况由命令中的count参数决定:

1. 如果count为正数,且小于集合基数,那么命令返回一个包含count个元素的数组,数组中的元素各不相同。

2. 如果count大于等于集合基数,那么返回整个集合。

3. 如果count为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为count的绝对值。

Srandmember和Spop相似,但Spop将随机元素从集合中移除并返回,而Srandmember则仅仅返回随机元素,而不对集合进行任何改动。

Srem:移除集合中指定的一个或多个元素,忽略不存在的元素。

Sscan:迭代集合中的元素。

Smove:将指定成员从一个源集合移动到一个目的集合。相当于两个操作,将指定元素从源集合中删除,并加入目的集合中。若源集合不存在或不包含指定元素则不做任何操作。

下面介绍的差集、交集和并集都将使用以下三个集合来示例:

Sdiff:返回所有给定集合之间的差集,不存在的集合视为空集。

Sdiffstore:将所有给定集合之间的差集存储在指定的目的集合中。若目的集合已存在则覆盖它。

差集:第一个集合中有,其他集合没有的元素。

Sinter:返回所有给定集合的交集,不存在的集合视为空集。

Sinterstore:将所有给定集合的交集存储在指定的目的集合中。若目的集合已存在则覆盖它。

Sunion:返回所有给定集合的并集,不存在的集合视为空集。

Sunionstore:将所有给定集合的并集存储在指定的目的集合中。若目的集合已存在则覆盖它。

Redis命令行之Set的更多相关文章

  1. 二、Redis启动、停止、Redis命令行的操作

    1.redis命令 redis执行了make install后,redis的课执行文件都会自动复制到 /usr/local/bin 目录 redis-server redis服务器 redis-cli ...

  2. redis命令行操作

    打开shell,首先开启redis服务,在保证服务开启的情况下,打开客户端. 然后可以根据文档,进行命令行试验.

  3. redis 命令行查看修改配置文件项、配置文件说明

    命令行查看修改配置文件项 config get | config set | config rewrite config get requirepass // 获取密码config set requi ...

  4. Redis命令行之Zset

    一.Redis之Zset简介 1. 有序集合Zset是String类型的有序集合. 2. Zset中每个元素都会关联一个double类型的分数值,redis通过分数值来为集合中所有成员进行从小到大排序 ...

  5. Redis命令行之List

    一.Redis之List简介 1. List是简单的字符串列表,按照插入顺序排列. 2. 一个列表最多可存储232-1个元素(40多亿). 二.Redis之List命令行操作 Lrange:获取列表指 ...

  6. Redis命令行之Hash

    一.Redis之Hash简介 1. Hash是一个string类型的field和value的映射表,适合用于存储对象. 2. 每个hash可以存储232-1个键值对(40多亿). 二.Redis之Ha ...

  7. Redis命令行之String

    一.Redis之String简介 1. String是redis最基本的数据类型,一个key对应一个value. 2. String是二进制安全的,可以包含任何数据,例如图片或序列化的对象. 3. S ...

  8. Redis 命令行工具能这样用你知道了吗?

    我们天天都在使用 Redis 内置的命令行工具 redis-cli,久而久之以为它就是一个简单的交互式 Redis 数据结构手工操作程序,但是它背后强大的功能绝大多数同学可能闻所未闻.本节我们一起来挖 ...

  9. Redis - 命令行工具

    使用Redis内置的命令行工具 redis-cli一些便捷的命令: 1.执行单条命令 平时在访问 Redis 服务器,一般都会使用 redis-cli 进入交互模式,然后一问一答来读写服务器,这种情况 ...

随机推荐

  1. C程序(2)

     

  2. 8 Java 归并排序(MergerSort)

    图片素材与文字描述来自:尚硅谷-韩顺平数据结构与算法. 1.基本思想 归并排序是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divi ...

  3. POJ 3080 Blue Jeans、POJ 3461 Oulipo——KMP应用

    题目:POJ3080 http://poj.org/problem?id=3080 题意:对于输入的文本串,输出最长的公共子串,如果长度相同,输出字典序最小的. 这题数据量很小,用暴力也是16ms,用 ...

  4. Bzoj 1055: [HAOI2008]玩具取名 (区间DP)

    Bzoj 1055: [HAOI2008]玩具取名 (区间DP) 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1055 区间动态规划和可 ...

  5. 【Java_基础】Java的访问权限控制

    1.类成员的访问权限控制 Java中类成员的访问权限分为四类:private,无(默认情况下),protected和public.其权限控制如下表所示: 修饰词 本类 同一个包的类 继承类 其他类 p ...

  6. The Fourth Day

    迭代器 迭代器:迭代的工具 .什么是迭代:指的是一个重复的过程,每次重复称为一次迭代,并且每次重复的结果是下一次重复的初始值 例: while True: print('====>'') l=[ ...

  7. Springboot(一)-IDEA搭建springboot项目(demo)

    jdk版本:1.8.0_162 1.打开IDEA-file-new-project-Spring Initializer,JDK和URL选默认,next (这一步如果是不能联网的话,可以选择直接创建m ...

  8. TB平台搭建之三

    有简单到复杂,可以简单的决不复杂化,事情从可控开始,即使再好的技术如果不可控最好不要用否则以后的debug可能比较麻烦. 无论是搭建平台还是写复杂的case都是尽量从简单开始,不要上来复杂,否则deb ...

  9. 9-Python基础知识-day1

    Python基础知识-day1 Python 2 和Python 3 的区别: Python2 源码不标准,混乱,重复代码多:#-*-encoding:utf8 -*- 解决python2显示中文的问 ...

  10. bash快捷键及输入输出重定向

    bash特性之快捷键:     Ctrl+a: 跳转至命令首部     Ctrl+e: 跳转至命令尾部         Ctrl+l: 清屏     Ctrl+c: 中止或取消         Ctr ...