第五节:Redis 数据结构之Set 类型
存储Set,这里的Set是无序的;
 和List类型不同的是,Set集合中不允许出现重复的元素
 Set可包含的最大元素数量是4294967295
 
存储set常用命令:
添加/删除元素
获取集合中的元素
集合中的差集运算
集合中的交集运算
集合中的并集元算
扩展命令
 
添加set元素
查看set1中所有元素
127.0.0.1:6379> sadd set1 a b c
(integer) 3
127.0.0.1:6379> smembers set1
1) "b"
2) "c"
3) "a"
无法添加重复元素:
127.0.0.1:6379> sadd set1 a d e
(integer) 2
127.0.0.1:6379> smembers set1
1) "d"
2) "b"
3) "c"
4) "a"
5) "e"
删除元素
127.0.0.1:6379> srem set1 a d
(integer) 2
127.0.0.1:6379> smembers set1
1) "b"
2) "c"
3) "e"
判断某个元素是否存在 返回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) "b"
2) "c"
sunion计算并集
127.0.0.1:6379> sunion set2 set3
1) "a"
2) "b"
3) "d"
4) "c"
5) "e"
scard计算元素总数
127.0.0.1:6379> smembers set1
1) "b"
2) "c"
3) "e"
127.0.0.1:6379> scard set1
(integer) 3
srandmember 随机取一个/n个元素
127.0.0.1:6379> smembers set1
1) "b"
2) "c"
3) "e"
127.0.0.1:6379> srandmember set1
"e"
127.0.0.1:6379> srandmember set1 2
1) "c"
2) "e"
比如猜你喜欢,随机选几个;
 
 
sdiffstore 把差集结果存储到新集合中
127.0.0.1:6379> smembers set1
1) "b"
2) "c"
3) "e"
127.0.0.1:6379> smembers set2
1) "b"
2) "c"
3) "a"
127.0.0.1:6379> sdiffstore r1 set1 set2
(integer) 1
127.0.0.1:6379> smembers r1
1) "e"
sinterstore 把交集结果存储到新集合中
127.0.0.1:6379> smembers set1
1) "b"
2) "c"
3) "e"
127.0.0.1:6379> smembers set2
1) "b"
2) "c"
3) "a"
127.0.0.1:6379> sinterstore r2 set1 set2
(integer) 2
127.0.0.1:6379> smembers r2
1) "b"
2) "c"
sunionstore把并集结果存储到新集合中
127.0.0.1:6379> smembers set1
1) "b"
2) "c"
3) "e"
127.0.0.1:6379> smembers set2
1) "b"
2) "c"
3) "a"
127.0.0.1:6379> sunionstore r3 set1 set2
(integer) 4
127.0.0.1:6379> smembers r3
1) "b"
2) "c"
3) "a"
4) "e"
存储Set使用场景
 跟踪一些唯一性数据
 用于维护数据对象之间的关联关系

峰Redis学习(5)Redis 数据结构(Set的操作)的更多相关文章

  1. redis学习研究--Redis作者谈Redis应用场景

    毫无疑问,Redis开创了一种新的数据存储思路,使用Redis,我们不用在面对功能单调的数据库时,把精力放在如何把大象放进冰箱这样的问题上,而是利用Redis灵活多变的数据结构和数据操作,为不同的大象 ...

  2. Redis学习笔记~Redis主从服务器,读写分离

    回到目录 Redis这个Nosql的存储系统一般会被部署到linux系统中,我们可以把它当成是一个数据服务器,对于并发理大时,我们会使用多台服务器充当Redis服务器,这时,各个Redis之间也是分布 ...

  3. redis学习笔记-redis的安装

    Window 下安装 下载地址:https://github.com/MSOpenTech/redis/releases Redis 支持 32 位和 64 位.这个需要根据你系统平台的实际情况选择, ...

  4. Redis学习笔记(二) ---- PHP操作Redis各数据类型

    Redis 一.使用PHP操作Redis存储系统中的各类数据类型方法 1.String(字符串)操作 <?php // 1. 实例化 $redis = new Redis; // 2. 连接 r ...

  5. redis学习之——redis.conf配置(基本)文件学习

    # Redis configuration file example # Note on units: when memory size is needed, it is possible to sp ...

  6. Redis学习笔记-Redis内部数据结构

    Redis内部数据结构 Redis和其他key-value数据库的很大区别是它支持非字符串类型的value值.它支持的value值的类型如下: sds (simple dynamic string) ...

  7. Redis学习-redis概述

    最近刚刚接触了redis技术,对此有一些了解,这是简单做一点总结. Redis简介 首先,简单了解一下NoSQL(Not only sql),不要错误的理解为:没有SQL,而是不仅仅是SQL.NoSQ ...

  8. redis学习笔记——Redis过期键的删除策略

    Redis过期键的删除策略 对于过期键一般有三种删除策略 定时删除:在设置键的过期时间的同时,创建一个定时器(timer),让定时器在键的过期时间来临时,立即执行对键的删除操作: 惰性删除:放任键过期 ...

  9. Redis学习笔记——Redis的基本操作

    之前介绍过如何在ubuntu安装Redis服务器:https://www.cnblogs.com/zifeiy/p/9062738.html 接下来,我们在Redis上进行一些基本的操作. 所县使用命 ...

  10. Redis学习:Redis的安装与配置

    Redis是新兴的一种内存数据库技术,在数据高速读写方面有着明显的优势.前几天,Redis3.0正式版本发布,为我们带来了Redis集群功能.这一功能很早就投入了开发,直到现在才真正走进我们的视野.可 ...

随机推荐

  1. poj-1657 Distance on Chessboard

    c语言解决 代码:#include <stdio.h>#include <stdlib.h> int main(){    int num,i;    scanf(" ...

  2. Uva 816 Abbott's Revenge(BFS)

    #include<cstdio> #include<cstring> #include<vector> #include<queue> using na ...

  3. java-抽象类的成员特点

    1.成员变量:既可以是变量,也可以是常量.abstract不能修饰成员变量. 2.构造方法:有.用于子类访问父类数据的初始化. 3.成员方法:既可以是抽象的,也可以是非抽象的. - 抽象方法:强制要求 ...

  4. lucene随笔 IKAnalyzer StandardAnalyzer

    StandardAnalyzer 是单词分词器: String msg = "我喜欢你,我的祖国!china 中国,I love you!中华人民共和国"; 分词后的结果:[我], ...

  5. python与系统做交互常用的模块和使用方法

    1.使用os模块与系统做简单命令的交互 >>>import os >>>os.popen('pwd') <open file 'pwd', mode 'r' ...

  6. sqlyog数据库管理软件下载

    下载安装包 一路next 链接:https://pan.baidu.com/s/1tdIwtYEW11MNWk--Hqd3dw 提取码:0ffp 复制这段内容后打开百度网盘手机App,操作更方便哦 然 ...

  7. Centos7网络正常,但使用yum提示安装源无法连接

    可以尝试使用yum clean all清空yum源本地缓存

  8. Python——scapy模块实现tcp探测目标服务器路由轨迹

      scapy模块的安装 484 yum install tcpdump graphviz ImageMagick -y 485 wget http://www.secdev.org/projects ...

  9. Centos7提示swap交换空间不足解决方法

    一张图就能解决的问题,就不多bb了

  10. 现在的企业用到的Java开发主流框架有哪些

    虽然Java一直被唱衰,但是直到现在Java软件开发也坚持霸主地位不动摇.毫无疑问,Java是目前最热门的编程语言之一.随着Java面向对象语言的流行以及多层架构应用的出现,使得应用程序的可复用性得到 ...