redis基本数据结构-集合set

  • 特性
  • 一个集合键最多存储 2^32 - 1 个字符串值
  • 元素在集合内无序(哈希表-链地址法解决冲突)
  • 元素在集合内唯一

  • 向集合添加元素
sadd key  value1 value2 ...
sadd letters a b c d

返回4(实际添加的元素个数), letters = {a, b, c, d},无序,只为指示集合中的值

  • 从集合删除元素(只删除且只返回实际删除了的个数,而不返回删除的元素值)
srem key value1  value2 ...
srem a c 

 返回2(实际删除的元素个数), letters = {b, d}

  • 获取集合中的所有元素
smembers key
smembers  letters

 letters = {b, d}

  • 判断元素是否在集合中
sismember key value
sismember  letters b

 返回1

sismember letters a

 返回0

  • 相减运算
sdiff  key1  key2 ...

 说明:  sdiff key1 key2 === {x | x∈key1  and x∉key2}

sadd letters a c 
sadd letters2 a b c
sdiff letters letters2

letters = {a, b, c, d}

letters = {a, b , c}

返回{d}

  • 相交运算
sinter  key1  key2 ...
sinter letters  letters2

 返回 {a, b, c} 

  • 并集运算
sunion  key1  key2 ...
sunion  letters  letters2 

返回 {a, b, c, d}

  • 获取集合中的元素总数
scard   key
scard  letters

 返回 4,  letters = {a, b, c, d}

随机获取集合中的(指定个数)元素

srandmember  key [count]

当 不指定count,返回1个

当 count > 0,返回count不重复的,如果count > scard key ,则返回全部

当 count < 0,返回abs(count)个可能会重复的,如果abs(count) > scard key,则返回可能重复的abs(count)个

letters = {a, b, c, d}

srandmember  letters

 返回 b,随机的,不一定是b

srandmember lettters   -3

 返回{a, b, a},随机的,不一定是这3个

  • 进行集合运算并将计算结果存储在一个key中

key1 key2 ... 等键做diff运算后存储在key中

sdiffstory  key   key1  key2 ...
  • key1 key2 ... 等键做交集运算后存储在key中 
sinter key  key1  key2 ...
  •  key1 key2 ... 等键做并集运算后存储在key中
sunion  key  key1  key2 ...
  • 从集合中弹出某个元素(随机删除并返回元素值,区别于srem)
spop  key
spop  letters

 返回 a,随机的,不一定是a

redis基本数据结构-集合set的更多相关文章

  1. Redis基本数据结构总结之STRING和LIST

    Redis基本数据结构总结前言 Redis的特点在于其读写速度特别快,因为是存储在内存中的,其非常适合于处理大数据量的情况:还有一个是其不同于其他的关系型数据库,Redis是非关系型数据库,也就是我们 ...

  2. Redis基本数据结构总结之SET、ZSET和HASH

    Redis基本数据结构总结 前言 Redis的特点在于其读写速度特别快,因为是存储在内存中的,其非常适合于处理大数据量的情况:还有一个是其不同于其他的关系型数据库,Redis是非关系型数据库,也就是我 ...

  3. 聊一聊Redis的数据结构

    如果没有记错的话,应该是在两个月前把 我们经常看到此类的文章: Redis的五种数据结构 Redis的数据结构以及对应的使用场景 其实以数据结构这个词去说明Redis的String.Hash.List ...

  4. Redis学习——数据结构介绍(四)

    一.简介 作为一款key-value 的NoSQL数据库,Redis支持的数据结构比较丰富,有:String(字符串) .List(列表) .Set(集合) .Hash(哈希) .Zset(有序集合) ...

  5. Redis常用数据结构

    Redis常用数据结构包括字符串(strings),列表(lists),哈希(hashes),集合(sets),有序集合(sorted sets). redis的key最大不能超过512M,可通过re ...

  6. Redis的数据结构、通用操作及其特性

    Redis的数据结构 五种数据类型: 字符串(String).字符串列表(list).字符串集合(set).有序字符串集合(sorted set).哈希(hash) key定义的注意点: 不要过长,不 ...

  7. Redis学习笔记之Redis基本数据结构

    Redis基础数据结构 Redis有5种基本数据结构:String(字符串).list(列表).set(集合).hash(哈希).zset(有序集合) 字符串string 字符串类型是Redis的va ...

  8. 你真的懂redis的数据结构了吗?redis内部数据结构和外部数据结构揭秘

    Redis有哪些数据结构? 字符串String.字典Hash.列表List.集合Set.有序集合SortedSet. 很多人面试时都遇到过这种场景吧? 其实除了上面的几种常见数据结构,还需要加上数据结 ...

  9. Redis的数据结构

    Redis的数据结构 redis是一种高级的key-value的存储系统,其中value支持五种数据类型. 字符串(String) 哈希(hash) 字符串列表(list) 字符串集合(set) 有序 ...

  10. 细说Redis(一)之 Redis的数据结构与应用场景

    这一篇文章主要介绍Redis的数据结构与应用场景 NOSQL之Redis Redis是一款由key-value存储的软件.说起NOSQL,有文档型.键值型.列型存储.图形数据库.其中,在简单的读写性能 ...

随机推荐

  1. C语言(较深入原理):%s通过字符串首元素地址输出,用指针数组来作示例

    首先,我们输出一个字符串都知道是用%s来输出,但是我们并没有多想是通过什么方式来输出的. 今天我在看指针数组的时候发现了一个问题,按就是定义一个字符类型的指针数组, /*字符串的输出本身就需要他的地址 ...

  2. pageoffice6 实现提取数据区域为子文件(Word拆分)

    在实际的开发过程中,有时会遇到希望提取Word文档中部分内容保存为子文件的需求,PageOffice支持提取Word文档数据区域中的内容为一个Word文件流,在服务器端创建PageOffice的Wor ...

  3. AIRIOT物联网低代码平台如何配置db-driver驱动?

    设备接入能力包括接入驱动类型及接入数据量,性能方面需要考量数据采集的稳定性和驱动的丰富性等多个因素.用户在选择物联网平台时,往往存在一些误区,比如很关注平台支持的驱动数量,越多越好.市场上确有支持上千 ...

  4. c# 记一次批量获取自己的qq好友的CF游戏战绩

    突然想耍穿越火线,就下载了,想看看自己的战绩就在这个网址上查:https://cf.qq.com/wx/zjcx.htm,后来又想看看qq好友的战绩,就得一个一个得复制粘贴qq,选择大区.我这时候就像 ...

  5. C# wpf之控制屏幕显示方向旋转

    using System;using System.Collections.Generic;using System.Linq;using System.Runtime.InteropServices ...

  6. 一个或多个C文件编译KO

    参考文档:.c文件如何编译为ko的MAKEFILE文件编写 - young525 - 博客园 (cnblogs.com) 文档组织结构 header目录:存放头文件 source目录:存放源文件 单个 ...

  7. C# 指针简单使用

    1. 使用unsafe C# 支持 unsafe 上下文,你可在其中编写不可验证的代码. 在 unsafe 上下文中,代码可使用指针.分配和释放内存块,以及使用函数指针调用方法. C# 中的不安全代码 ...

  8. while适用于不确定循环次数

      // 当前有一个随机数,是生成100-999的随机数值         // 需要生成数值666,需要知道循环了多少次,才生成的666这个数值         // 我们可以通过循环来实现     ...

  9. 常见的Linux命令

     在 cmd 命令行 或者终端中             可以运行 node.js 命令 也可以 运行 SQL语句 还可以运行 Linux 命令                          Li ...

  10. LeetCode 692. Top K Frequent Words 前K个高频单词 (Java)

    题目: Given a non-empty list of words, return the k most frequent elements. Your answer should be sort ...