存储Set

和List类型不同的是,Set集合中不允许出现重复的元素

Set可包含的最大元素数量是4294967295

存储set常用命令:

添加/删除元素

获取集合中的元素

集合中的差集运算

集合中的交集运算

集合中的并集元算

扩展命令

sadd key member [member ...]

添加set元素

127.0.0.1:6379> sadd set1  a b c

(integer) 3

添加三个元素

smembers key

查看指定key集合元素

127.0.0.1:6379> smembers set1

1) "c"

2) "b"

3) "a"

127.0.0.1:6379> sadd set1 a d e

(integer) 2

127.0.0.1:6379> smembers set1

1) "c"

2) "d"

3) "b"

4) "a"

5) "e"

继续添加元素 发现 重复元素不再添加

srem key member [member ...]

删除元素

127.0.0.1:6379> srem set1 a d

(integer) 2

127.0.0.1:6379> smembers set1

1) "b"

2) "c"

3) "e"

删除两个元素

sismember key member

判断某个元素是否存在 返回1 表示存在 返回0表示不存在

127.0.0.1:6379> sismember set1 a

(integer) 0

127.0.0.1:6379> sismember set1 b

(integer) 1

sdiff计算差集

127.0.0.1:6379> sadd set2 a b c

(integer) 3

127.0.0.1:6379> sadd set3 b c d e

(integer) 4

127.0.0.1:6379> sdiff set2 set3

1) "a"

127.0.0.1:6379> sdiff set3 set2

1) "d"

2) "e"

我们发现 集合的顺序不同 结果不一样 根据前者参考

sinter计算交集

127.0.0.1:6379> sinter set2 set3

1) "c"

2) "b"

sunion计算并集

127.0.0.1:6379> sunion set2 set3

1) "e"

2) "a"

3) "b"

4) "c"

5) "d"

scard计算元素总数

127.0.0.1:6379> smembers set1

1) "b"

2) "c"

3) "e"

127.0.0.1:6379> scard set1

(integer) 3

srandmember 随机取一个元素

127.0.0.1:6379> srandmember set1

"c"

127.0.0.1:6379> srandmember set1

"e"

sdiffstore 把差集结果存储到新集合中

127.0.0.1:6379> smembers set2

1) "c"

2) "b"

3) "a"

127.0.0.1:6379> smembers set3

1) "c"

2) "e"

3) "d"

4) "b"

127.0.0.1:6379> sdiffstore r1 set2 set3

(integer) 1

127.0.0.1:6379> smembers r1

1) "a"

sinterstore 把交集结果存储到新集合中

127.0.0.1:6379> sinterstore r2 set2 set3

(integer) 2

127.0.0.1:6379> smembers r2

1) "c"

2) "b"

sunionstore把并集结果存储到新集合中

127.0.0.1:6379> sunionstore r3 set2 set3

(integer) 5

127.0.0.1:6379> smembers r3

1) "e"

2) "a"

3) "b"

4) "c"

5) "d"

存储Set使用场景

跟踪一些唯一性数据

用于维护数据对象之间的关联关系

Redis的数据结构之Set的更多相关文章

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

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

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

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

  3. Redis各种数据结构性能数据对比和性能优化实践

    很对不起大家,又是一篇乱序的文章,但是满满的干货,来源于实践,相信大家会有所收获.里面穿插一些感悟和生活故事,可以忽略不看.不过听大家普遍的反馈说这是其中最喜欢看的部分,好吧,就当学习之后轻松一下. ...

  4. 聊一聊Redis的数据结构

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

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

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

  6. Redis常用数据结构

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

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

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

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

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

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

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

  10. Redis的数据结构

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

随机推荐

  1. html基础技巧:点击、placeholder、文本、字体、清楚浮动

    点击处理: 消除a标签点击后的边框,颜色(background:#fff) 1:a:focus{outline:none;} button去除边框 1:border:none 2:border:0px ...

  2. pip错误-failed to create process/fatal error in launcher

    电脑同时装了python2和python3,并且都配置了环境变量 将python2的python.exe改成python2.exe,python3的python.exe没有改(主要用python2时则 ...

  3. mq_receive

    NAME mq_receive - 从消息队列中获取消息 (REALTIME) SYNOPSIS #include <mqueue.h> ssize_t mq_receive(mqd_t ...

  4. Apache访问日志记录用户的每一个请求

    我们使用的是/usr/local/apache2.4/conf/extra/httpd-vhosts.conf配置文件下的第二段配置,它的日志在/usr/local/apache2.4/logs/下面 ...

  5. SparkCore | Rdd| 广播变量和累加器

    Spark中三大数据结构:RDD:  广播变量: 分布式只读共享变量: 累加器:分布式只写共享变量: 线程和进程之间 1.RDD中的函数传递 自己定义一些RDD的操作,那么此时需要主要的是,初始化工作 ...

  6. ISP PIPLINE (三) BPC

    what is the Bad Pixel? 坏点为死点,也就是基本不随照度变化呈现光电线性转换的关系.表现为暗态常亮,亮态常暗. 坏点分类:静态坏点:亮坏点,暗坏点.                 ...

  7. 动态规划——Edit Distance

    大意:给定两个字符串word1和word2,为了使word1变为word2,可以进行增加.删除.替换字符三种操作,请输出操作的最少次数   Example 1: Input: word1 = &quo ...

  8. Solve Error: MissingSchemaError: Schema hasn't been registered for model "YourModel".

    使用MongoDB的时候,如果遇到下面这个错误: /home/ec2-user/YourProject/node_modules/mongoose/lib/index.js: throw new mo ...

  9. linux学习:sed与awk与tr用法整理

    流编辑器:sed 语法:sed [-hnV][-e<script>][-f<script文件>][文本文件] 参数: -e<script>或--expression ...

  10. 在 CentOS7 安装 ELK

    ELK是一个成熟的日志系统,主要功能有收集.分析.检索,详细见 elastic官网. 本文主要介绍如何在CentOS7下安装最新版本的ELK,当然现在docker已经有完全配置成功的elk容器,安装配 ...