存储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. iOS 中的屏幕旋转shouldAutorotate和supportedInterfaceOrientations的先后关系

    这2个UIViewController的属性,都和旋转相关, 当设备发生旋转时,首先会查看根controller的shouldAutorotate是否允许旋转,如果允许,再通过 supportedIn ...

  2. iOS -- Effective Objective-C 阅读笔记 (9)

    // 将类的实现方法代码反三到便于管理的数个分类之中.        // 类中经常容易填满各种方法, 而这些方法的代码则全部堆在一个巨大的实现文件中, 有时这么做事不合理的,因为即使通过重构把这个类 ...

  3. YII 自封装的批量修改的mysql操作类

    <?php /** * Created by PhpStorm. * User: yufen * Date: 2018/8/31 * Time: 9:54 */ namespace app\ba ...

  4. Xilinx 7 Serial PUDC_B

    PUDC_B管脚用途 Pull-Up During Configuration (bar) Active-Low PUDC_B input enables internal pull-up resis ...

  5. [转] vue之computed和watch

    计算属性 computed 侦听器or观察者 watch 一直以来对computed和watch一知半解,用的时候就迷迷糊糊的,今天仔细看了看文档,突然茅塞顿开,原来就是这么简单啊: computed ...

  6. 20165220 mybash

    使用fork,exec,wait实现mybash - 写出伪代码,产品代码和测试代码 - 发表知识理解,实现过程和问题解决的博客(包含代码托管链接) 1.fork 功能:创建一个新的进程 一个现存进程 ...

  7. PHP 验证身份证

    function isCreditNo($vStr) { $vCity = array( '11','12','13','14','15','21','22', '23','31','32','33' ...

  8. webpack打包后该如何访问项目?

    一.问题描述 开发环境,页面浏览都OK,产出文件后,直接打开产出目录的index.html,页面空白. 二.预期结果 能正常看到页面. 三.问题分析 你可能会在编译的最后看到如下一句话: Tip: b ...

  9. oracle 删除重复记录

    查询及删除重复记录的SQL语句   1.查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断   select * from 表 where Id in (select Id from 表 g ...

  10. 2017-10-29—英语发音的一些技巧总结

    学习了这么多年英语还是一句口语也说不出口,大家一定像我一样有hin多的f*k想说. 在很小的时候我们就学了英语音标,知道了有前元音.中元音.后元音(很多同志多年不用应该已经把这些忘得差不多了,like ...