Redis基本类型之Set类型
文章目录
- 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类型相关推荐
- redis的五种存储类型的具体用法
一.String 类型操作 string是redis最基本的类型,而且string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象 $redis-&g ...
- Redis和nosql简介,api调用;Redis数据功能(String类型的数据处理);List数据结构(及Java调用处理);Hash数据结构;Set数据结构功能;sortedSet(有序集合)数
1.Redis和nosql简介,api调用 14.1/ nosql介绍 NoSQL:一类新出现的数据库(not only sql),它的特点: 1. 不支持SQL语法 2. 存储结构跟传统关系型数 ...
- Redis中7种集合类型应用场景
象我这样使用了关系型数据库很长时间的码农来说,对一些新的数据类型,比如:集合,链表,的使用场景,感到有种莫名的恐惧.不知有什么用. 在这里,我把几种REDIS数据类型的应用场景 文章转载如下: Red ...
- ***Redis hash是一个string类型的field和value的映射表.它的添加、删除操作都是O(1)(平均)。hash特别适合用于存储对象...
http://redis.readthedocs.org/en/latest/hash/hset.html HSET HSET key field value (存一个对象的时候key存) 将哈希 ...
- 理解 redis 中的 集合对象类型
这篇我们来看看Redis五大类型中的第四大类型:集合类型,集合类型还是蛮有意思的,第一个是因为它算是只使用key的Dictionary简易版,这样说来的话,它就比Dictionary节省很多内存消耗, ...
- Redis总结 其一 概述 安装 类型
为什么要用Redis? 数据库 磁盘IO太慢(原因需了解磁盘,磁道,扇区,操作系统) 内存级别数据库还太贵, 折中就是缓存 关系型数据库和非关系型数据库的区别: 关系型数据库是依据关系模型来创建的数据 ...
- 【Redis】五种存储类型及其底层数据结构
Redis(Remote Dictionary Service远程字典服务) 参考: 图解redis五种数据结构底层实现(动图哦) Redis(1)--5种基本数据结构 目录 1. Redis的五种存 ...
- 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 ...
- Redis的list,set,zset类型应用及排行榜的实现
Redis数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)等 List类型 简介 Lis ...
- 黑马Redis实战篇—给商铺类型缓存(练习)
给商铺类型查询业务添加缓存 黑马点评P37集,给商铺类型业务添加缓存. 商铺类型是list类型,较36集需要一些改动. ShopTypeController @RestController @Requ ...
最新文章
- 高德地图POI搜索,附近地图搜索,类似附近的人搜索
- android调用web接口,Android调用webservice 接口
- SSH实现新闻管理系统
- codeforces gym-101736 Dessert First Strategy 最小割
- Xtrabackup数据全备份与快速搭建从服务器
- 搜狗高速浏览器怎么设置页面字体 设置方法介绍
- 去掉Mybatis Generator生成的一堆 example
- mysql with-embedded-server_终于成功实验程序实现Embedded MySQL Server启动(C/C++)
- Python学习笔记(2) Python提取《釜山行》人物关系
- 宠物商店管理系统php,宠物店管理系统
- 【基于物理的渲染(PBR)白皮书】(三)迪士尼原则的BRDF与BSDF相关总结
- 渗透测试常用工具-amap服务枚举
- pyqt5报错——ERROR: pip‘s dependency resolver does not currently take into account all the packages that
- [CSP2020]儒略日
- 软件设计的七大原则 --开闭原则 里氏替换原则 依赖倒置原则
- 树莓派3B+ 引脚图说明
- 安装scss后报错Module build failed: TypeError: loaderContext.getResolve is not a function解决方法
- mac安装配置maven
- IGBT学习记录(一)
- 如何实现从M个数字选取N个数字排列算法
热门文章
- 工作流系列(4.1)-Activity表结构介绍
- 杰理AC632N蓝牙芯片iokey使用解析(通用MCU版)
- 数据结构与算法-进阶(五)图的实现
- mro列表_类的继承mro
- 短文本分类---小白从0到0.3的辛酸历程(上)
- 手机里tencent文件夹能删吗_华为手机中的文件夹代表什么,哪些可以删除,看完秒懂-tencent是什么文件夹...
- C++项目设计与总结
- python使用win32com复制word的某一页然后粘贴到新的word页面中
- LeetCode之K sum problem
- 串行接口与并行接口的概念与区别