文章目录

  • Redis基本类型之Set类型
    • 一、概述
      • 1、简介
      • 2、特征
    • 二、Set类型的常见命令
    • 三、操作案例
      • 1、单个集合操作
        • 1.1、sadd(添加一个或多个)
        • 1.2、srem(移除一个或多个)
        • 1.3、scard(获取元素个数)
        • 1.4、sismember(判断元素是否存在)
        • 1.5、smembers(获取所有元素)
      • 2、多个集合操作
        • 2.1、张三的好友有:李四、王五、赵六(sadd)
        • 2.2、李四的好友有:王五、麻子、二狗(sadd)
        • 2.3、计算张三的好友有几人(scard)
        • 2.4、计算张三和李四有哪些共同好友(sinter)
        • 2.5、查询哪些人是张三的好友却不是李四的好友(sdiff)
        • 2.6、查询张三和李四的好友总共有哪些人(sunion)
        • 2.7、判断李四是否是张三的好友(sismember)
        • 2.8、判断张三是否是李四的好友(sismember)
        • 2.9、将李四从张三的好友列表中移除(srem)

Redis基本类型之Set类型

一、概述

1、简介

  • Redis的Set结构与Java中的HashSet类似,可以看做一个value为null的HashMap。因为也是一个hash表,因此具备与HashSet类似的特征。

2、特征

  • 无序
  • 元素不可重复
  • 查找快
  • 支持交集、并集、差集等功能

二、Set类型的常见命令

命令 作用
sadd 向set中添加一个或多个元素
srem 移除set中的指定元素
scard 返回set中元素的个数
sismember 判断一个元素是否存在于set中
smembers 获取set中的所有元素
sinter 求key1与key2的交集
sdiff 求key1与key2的差集
sunion 求key1和key2的并集

三、操作案例

1、单个集合操作

1.1、sadd(添加一个或多个)

  • sadd:向set中添加一个或多个元素
192.168.246.128:6379> SADD sgz a b c
(integer) 3

1.2、srem(移除一个或多个)

  • srem:移除set中的指定元素
192.168.246.128:6379> SREM sgz a
(integer) 1

1.3、scard(获取元素个数)

  • scard:返回set中元素的个数
192.168.246.128:6379> SCARD sgz
(integer) 2

1.4、sismember(判断元素是否存在)

  • sismember:判断一个元素是否存在于set中
192.168.246.128:6379> SISMEMBER sgz a
(integer) 0
192.168.246.128:6379> SISMEMBER sgz b
(integer) 1

1.5、smembers(获取所有元素)

  • smembers:获取set中的所有元素
192.168.246.128:6379> SMEMBERS sgz
1) "c"
2) "b"

2、多个集合操作

2.1、张三的好友有:李四、王五、赵六(sadd)

192.168.8.137:6379> SADD zs lisi wangwu zhaoliu
(integer) 3

2.2、李四的好友有:王五、麻子、二狗(sadd)

192.168.8.137:6379> SADD ls wangwu mazi ergou
(integer) 3

2.3、计算张三的好友有几人(scard)

192.168.8.137:6379> SCARD zs
(integer) 3

2.4、计算张三和李四有哪些共同好友(sinter)

  • sinter:求key1与key2的交集
192.168.8.137:6379> SINTER zs ls
1) "wangwu"

2.5、查询哪些人是张三的好友却不是李四的好友(sdiff)

  • sdiff:求key1与key2的差集
192.168.8.137:6379> SDIFF zs ls
1) "lisi"
2) "zhaoliu"

2.6、查询张三和李四的好友总共有哪些人(sunion)

  • sunion:求key1和key2的并集
192.168.8.137:6379> SUNION zs ls
1) "lisi"
2) "zhaoliu"
3) "wangwu"
4) "mazi"
5) "ergou"

2.7、判断李四是否是张三的好友(sismember)

192.168.8.137:6379> SISMEMBER zs lisi
(integer) 1

2.8、判断张三是否是李四的好友(sismember)

192.168.8.137:6379> SISMEMBER lisi zs
(integer) 0

2.9、将李四从张三的好友列表中移除(srem)

192.168.8.137:6379> SREM zs lisi
(integer) 1

Redis基本类型之Set类型相关推荐

  1. redis的五种存储类型的具体用法

    一.String 类型操作 string是redis最基本的类型,而且string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象 $redis-&g ...

  2. Redis和nosql简介,api调用;Redis数据功能(String类型的数据处理);List数据结构(及Java调用处理);Hash数据结构;Set数据结构功能;sortedSet(有序集合)数

    1.Redis和nosql简介,api调用 14.1/ nosql介绍 NoSQL:一类新出现的数据库(not only sql),它的特点: 1.  不支持SQL语法 2.  存储结构跟传统关系型数 ...

  3. Redis中7种集合类型应用场景

    象我这样使用了关系型数据库很长时间的码农来说,对一些新的数据类型,比如:集合,链表,的使用场景,感到有种莫名的恐惧.不知有什么用. 在这里,我把几种REDIS数据类型的应用场景 文章转载如下: Red ...

  4. ***Redis hash是一个string类型的field和value的映射表.它的添加、删除操作都是O(1)(平均)。hash特别适合用于存储对象...

    http://redis.readthedocs.org/en/latest/hash/hset.html HSET HSET key field value   (存一个对象的时候key存) 将哈希 ...

  5. 理解 redis 中的 集合对象类型

    这篇我们来看看Redis五大类型中的第四大类型:集合类型,集合类型还是蛮有意思的,第一个是因为它算是只使用key的Dictionary简易版,这样说来的话,它就比Dictionary节省很多内存消耗, ...

  6. Redis总结 其一 概述 安装 类型

    为什么要用Redis? 数据库 磁盘IO太慢(原因需了解磁盘,磁道,扇区,操作系统) 内存级别数据库还太贵, 折中就是缓存 关系型数据库和非关系型数据库的区别: 关系型数据库是依据关系模型来创建的数据 ...

  7. 【Redis】五种存储类型及其底层数据结构

    Redis(Remote Dictionary Service远程字典服务) 参考: 图解redis五种数据结构底层实现(动图哦) Redis(1)--5种基本数据结构 目录 1. Redis的五种存 ...

  8. Redis源码-String:Redis String命令、Redis String存储原理、Redis String三种编码类型、Redis字符串SDS源码解析、Redis String应用场景

    Redis源码-String:Redis String命令.Redis String存储原理.Redis String三种编码类型.Redis字符串SDS源码解析.Redis String应用场景 R ...

  9. Redis的list,set,zset类型应用及排行榜的实现

    Redis数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)等 List类型 简介 ​ Lis ...

  10. 黑马Redis实战篇—给商铺类型缓存(练习)

    给商铺类型查询业务添加缓存 黑马点评P37集,给商铺类型业务添加缓存. 商铺类型是list类型,较36集需要一些改动. ShopTypeController @RestController @Requ ...

最新文章

  1. 高德地图POI搜索,附近地图搜索,类似附近的人搜索
  2. android调用web接口,Android调用webservice 接口
  3. SSH实现新闻管理系统
  4. codeforces gym-101736 Dessert First Strategy 最小割
  5. Xtrabackup数据全备份与快速搭建从服务器
  6. 搜狗高速浏览器怎么设置页面字体 设置方法介绍
  7. 去掉Mybatis Generator生成的一堆 example
  8. mysql with-embedded-server_终于成功实验程序实现Embedded MySQL Server启动(C/C++)
  9. Python学习笔记(2) Python提取《釜山行》人物关系
  10. 宠物商店管理系统php,宠物店管理系统
  11. 【基于物理的渲染(PBR)白皮书】(三)迪士尼原则的BRDF与BSDF相关总结
  12. 渗透测试常用工具-amap服务枚举
  13. pyqt5报错——ERROR: pip‘s dependency resolver does not currently take into account all the packages that
  14. [CSP2020]儒略日
  15. 软件设计的七大原则 --开闭原则 里氏替换原则 依赖倒置原则
  16. 树莓派3B+ 引脚图说明
  17. 安装scss后报错Module build failed: TypeError: loaderContext.getResolve is not a function解决方法
  18. mac安装配置maven
  19. IGBT学习记录(一)
  20. 如何实现从M个数字选取N个数字排列算法

热门文章

  1. 工作流系列(4.1)-Activity表结构介绍
  2. 杰理AC632N蓝牙芯片iokey使用解析(通用MCU版)
  3. 数据结构与算法-进阶(五)图的实现
  4. mro列表_类的继承mro
  5. 短文本分类---小白从0到0.3的辛酸历程(上)
  6. 手机里tencent文件夹能删吗_华为手机中的文件夹代表什么,哪些可以删除,看完秒懂-tencent是什么文件夹...
  7. C++项目设计与总结
  8. python使用win32com复制word的某一页然后粘贴到新的word页面中
  9. LeetCode之K sum problem
  10. 串行接口与并行接口的概念与区别