Redis学习第五课:Redis Set类型及操作
Set是集合,它是string类型的无序集合。set是通过hash table实现的,添加、删除和查找的复杂度都是O(1)。
对集合我们可以取并集、交集、差集。通过这些操作我们可以实现SNS中的好友推荐和blog的tag功能。
Set集合操作:
sadd:向名称为Key的set中添加元素,同一集合中不能出现相同的元素值。(用法:sadd set集合名称 元素值)
127.0.0.1:6379> sadd myset1 hello
(integer) 1
127.0.0.1:6379> sadd myset1 world
(integer) 1
127.0.0.1:6379> smembers myset1
1) "hello"
2) "world"
127.0.0.1:6379> sadd myset1 hello
(integer) 0
srem:删除名称为key的set中的元素。(用法:srem set集合名称 要删除的元素值)
127.0.0.1:6379> smembers myset1
1) "hello"
2) "fine"
3) "world"
127.0.0.1:6379> srem myset1 fine
(integer) 1
127.0.0.1:6379> smembers myset1
1) "hello"
2) "world"
spop:随机返回并删除名称为key的set中一个元素。(用法:srem set集合名称)
127.0.0.1:6379> smembers myset1
1) "hello"
2) "world"
127.0.0.1:6379> spop myset1
"hello"
127.0.0.1:6379> smembers myset1
1) "world"
sdiff:返回所有给定key与第一个key的差集。(用法:sdiff set集合1 set集合2)
127.0.0.1:6379> smembers myset2
1) "two"
2) "one"
127.0.0.1:6379> smembers myset3
1) "three"
2) "two"
127.0.0.1:6379> sdiff myset2 myset3
1) "one"
sdiffstore:返回所有给定key与第一个key的差集,并将结果存为另一个key。(用法:sdiffstore 差集数据存入的集合 set集合1 set集合2)
127.0.0.1:6379> smembers myset3
1) "one"
2) "two"
3) "four"
127.0.0.1:6379> smembers myset4
1) "two"
2) "one"
127.0.0.1:6379> sdiffstore myset5 myset3 myset4
(integer) 1
127.0.0.1:6379> smembers myset5
1) "four"
sinter:返回所有给定key的交集。(用法:sinter set集合1 set集合2)
127.0.0.1:6379> smembers myset3
1) "one"
2) "two"
3) "four"
127.0.0.1:6379> smembers myset4
1) "two"
2) "one"
127.0.0.1:6379> sinter myset3 myset4
1) "two"
2) "one"
sinterstore:返回所有给定Set集合的交集,并将结果存为另一个set集合。(用法:sinterstore 交集结果集合 set集合1 set集合2)
127.0.0.1:6379> smembers myset3
1) "one"
2) "two"
3) "four"
127.0.0.1:6379> smembers myset4
1) "two"
2) "one"
127.0.0.1:6379> sinterstore myset6 myset3 myset4
(integer) 2
127.0.0.1:6379> smembers myset6
1) "one"
2) "two"
sunion:返回所有给定key的并集。(用法:sunion set集合1 set集合2)
127.0.0.1:6379> smembers myset3
1) "one"
2) "two"
3) "four"
127.0.0.1:6379> smembers myset4
1) "two"
2) "one"
127.0.0.1:6379> sunion myset3 myset4
1) "two"
2) "one"
3) "four"
sunionstore:返回所有给定key的并集,并将结果存为另一个set集合。(用法:sunionstore 并集结果集合 set集合1 set集合2)
127.0.0.1:6379> smembers myset3
1) "one"
2) "two"
3) "four"
127.0.0.1:6379> smembers myset4
1) "two"
2) "one"
127.0.0.1:6379> sunionstore myset7 myset3 myset4
(integer) 3
127.0.0.1:6379> smembers myset7
1) "two"
2) "one"
3) "four"
smove:从第一个集合中移除一个元素到另一个集合中。(用法:smove 集合1 集合2 要移除的元素值)
127.0.0.1:6379> smembers myset7
1) "two"
2) "one"
3) "four"
127.0.0.1:6379> smembers myset5
1) "four"
127.0.0.1:6379> smove myset7 myset5 one
(integer) 1
127.0.0.1:6379> smembers myset5
1) "one"
2) "four"
scard:返回名称为key的set集合的元素个数。(用法:scard 集合1)
127.0.0.1:6379> smembers myset5
1) "one"
2) "four"
127.0.0.1:6379> scard myset5
(integer) 2
sismember:判断某个值是否是集合的元素。(用法:sismember 集合1 指定的元素值)
127.0.0.1:6379> smembers myset7
1) "two"
2) "four"
127.0.0.1:6379> sismember myset7 two
(integer) 1
127.0.0.1:6379> sismember myset7 five
(integer) 0
srandmember:随机返回集合中的一个元素,但不删除元素。(用法:srandmember 集合1)
127.0.0.1:6379> smembers myset3
1) "one"
2) "two"
3) "four"
127.0.0.1:6379> srandmember myset3
"four"
127.0.0.1:6379> srandmember myset3
"four"
转载于:https://www.cnblogs.com/zxtceq/p/7250963.html
Redis学习第五课:Redis Set类型及操作相关推荐
- StackExchange.Redis学习笔记(五) 发布和订阅
StackExchange.Redis学习笔记(五) 发布和订阅 原文:StackExchange.Redis学习笔记(五) 发布和订阅 Redis命令中的Pub/Sub Redis在 2.0之后的版 ...
- Emojify - v2 吴恩达老师深度学习第五课第二周编程作业2
吴恩达老师深度学习第五课第二周编程作业2,包含答案! Emojify! Welcome to the second assignment of Week 2. You are going to use ...
- Redis进击(五)redis.conf 配置文件说明备注
某个时间,由于不清不楚的某些原因,导致了一次严重的线上事故.后来,开发不清不楚的配合把项目升级到了 Redis 高可用集群的哨兵模式(Redis-Sentinel),再后来,我们逐渐的又不清不楚的淡忘 ...
- Redis学习笔记(五)——持久化及redis.conf配置文件叙述
对于日常使用来说,学习完SpringBoot集成Redis就够我们工作中使用了,但是既然学习了,我们就学习一些Redis的配置及概念,使我们可以更深层次的理解Redis,以及增强我们的面试成功概率,接 ...
- 【黑马程序员】Redis学习笔记001:Redis简介+五种基本数据类型
一.Redis入门简介及基本操作命令 问题的抛出 出现的问题: 海量用户 高并发 罪魁祸首--关系型数据库: 性能瓶颈:磁盘IO性能低下 扩展瓶颈:数据关系复杂,扩展性差,不便于大规模集群 解决思路 ...
- Redis学习第八课:Redis高级实用特性(一)
Redis高级实用特性 注:我学习的环境是vmware7.1 + ubantu10.10+ redis 3.0.2 1.安全性 设置客户端连接后进行任何其他指定前需要的密码.因为redis速度相当快, ...
- 第三十五课 redis
21.9 redis介绍 Redis和Memcached类似,也属于k-v数据存储 什么是 key value 存储? JAVA 中的 map 就是 key=>value 存储的.键 => ...
- Redis学习笔记之七:有序集合类型
Redis最后一种类型是有序集合类型ZSet,即排序的Set,但又与Set不同的是,它比Set多一个字段分数(score)用于排序等操作,从这点来看,相当于Java中的TreeMap,但与Java的T ...
- 0.0 目录-深度学习第五课《序列模型》-Stanford吴恩达教授
文章目录 目录 第五课 第四课 第三课 第二课 第一课 目录 第五课 <序列模型> 笔记列表 Week 1 循环序列模型 Week 1 传送门 -> 1.1 为什么选择序列模型 1. ...
最新文章
- android 5.0 9300,三星Android5.0升级名单曝光 S2止步4.2
- 编写OD插件将IDA中分析出来的函数名导入到OD中
- ThreadLocal小记
- 转行,转向哪里?电子工程师!!!
- 【渝粤教育】 国家开放大学2020年春季 1069中央银行理论与实务 参考试题
- 先知模型 facebook_Facebook先知
- 2017.4.14 java基本类型和包装类的区别
- 职教云自动签到PHP接口版
- Nginx笔记总结十六:nginx优化指南
- 使用MTL库求解最小二乘解
- 灾难恢复! 关于做过快照的AVHD文件合并成VHD .
- mysql角色管理权限管理_mysql权限角色管理
- 如何使用API爬取数据,它和网页爬虫有什么区别?
- DLL注入之修改PE静态注入
- html菜鸟css,css菜鸟教程,css菜鸟教程官网
- (附源码)ssm天天超市购物网站 毕业设计 022101
- 兑现2021年合肥市高新区建设世界一流高科技园区政策部分条款申报指南
- Kafka的Topic删不掉
- 俄罗斯计算机水平_从四点到三十二点。 俄罗斯计算机和网络的早期
- 使用键盘发布手柄控制信息
热门文章
- 【2019icpc南京站网络赛 - F】Greedy Sequence(思维,贪心构造,STLset)
- html 旋转木马 轮播,JS实现旋转木马式图片轮播效果
- 用vscode可以开发php,【编程开发工具】vscode能够编写php吗
- matlab用for编写乘法表,实验二 Matlab程序设计基本方法1
- hdfs如何查找指定目录是否文件_hadoop实战教程-HDFS文件系统如何查看文件对应的block...
- HTML中scr是图片的什么,HTML中关于url、scr、href的区别
- linux emacs配置文件,[z]使用.emacs.d目录管理Emacs配置文件
- elementuiDemo1.1
- 模拟注册用户,按照以下要求实现相关功能:
- 计算机手二进制,求教高手:计算机二进制运算法则?