千家信息网

数据库集合相关命令有哪些

发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,本篇内容介绍了"数据库集合相关命令有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!集合的性质:
千家信息网最后更新 2025年01月22日数据库集合相关命令有哪些

本篇内容介绍了"数据库集合相关命令有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

集合的性质: 唯一性,无序性,确定性
无序性,例:{1,2}=={2,1}
唯一性,每一个值都是唯一的

例:插入"python","golang","python","c","java"5个值,但实际上,Redis返回的数字4,表示实际上只插入了4个值。这是因为有两个"python",集合自动过滤了第2个"python" 。

注: 在string和link的命令中,可以通过range 来访问string中的某几个字符或某几个元素
但,因为集合的无序性,无法通过下标或范围来访问部分元素.

因此想看元素,要么随机先一个,要么全选

sadd key value1 value2

作用: 往集合key中增加元素

sadd命令在遇到数据己经存在时,会返回"0",如果数据不存在则把数据插入再返回1。所以,这条命令可以通过返回的数字来判断数据是否存在

srem value1 value2

作用: 删除集合中集为 value1 value2的元素
返回值: 忽略不存在的元素后,真正删除掉的元素的个数

spop key

作用: 返回并删除集合中key中1个随机元素
随机--体现了无序性


(spop会弹出/删除key中的元素,可以用这个来抽奖,第一名抽出来,第二名,第三名...)

srandmember key

作用: 返回集合key中,随机的1个元素.

(和spop不同,不会弹出/删除key中的元素)

sismember key value

作用: 判断value是否在key集合中
是返回1,否返回0

smembers key

作用: 返回集中中所有的元素
注意:
smembers 命令不会删除数据。但是如果集合里的数据量极大,就应该慎重使用"获取所有数据",因为这样会导致系统的I/o资源瞬间耗尽

scard key

作用: 返回集合中元素的个数

smove source dest value

作用:把source中的value删除,并添加到dest集合中

sinter key1 key2 key3

作用: 求出key1 key2 key3 三个集合中的交集,并返回
redis 127.0.0.1:6379> sadd s1 0 2 4 6
(integer) 4
redis 127.0.0.1:6379> sadd s2 1 2 3 4
(integer) 4
redis 127.0.0.1:6379> sadd s3 4 8 9 12
(integer) 4
redis 127.0.0.1:6379> sinter s1 s2 s3
1) "4"
redis 127.0.0.1:6379> sinter s3 s1 s2
1)"4"

sinterstore dest key1 key2 key3

作用: 求出key1 key2 key3 三个集合中的交集,并赋给dest

suion key1 key2.. Keyn

作用: 求出key1 key2 keyn的并集,并返回

sdiff key1 key2 key3

作用: 求出key1与key2 key3的差集
即key1-key2-key3


集合的应用:
在工程中,Redis的集合一般有两种用途:
( I )根据集合内数据不重复的特性实现去重并记录信息。
(2 )利用多个集合计算交集、并集和差集。
假设,要做一个学生选课情况实时监控系统,则需要实时知道以下几个数据:
( I )当前一共有多少学生至少选了一门课。
(2 )选了A课没有选B 课的学生有多少。
(3 )既选了A课又选了B课的学生有多少。
( 4 ) A 、B两门课至少选了一门的学生有多少。
使用集合可以轻易实现这样的功能。每一门课作为一个集合,里面的值就是每一个学生的
学号,如图5 -65 所示:


用python实现:

import redisclient = redis.Redis(host="xx.xx.xx.xx')all_class = ['algorithm','computer','history','circuit_design','math']def all_student():students = client.sunion(*all_class)return len(students)def in_a_and_in_b(class_a,class_b):students = client.sinter(class_a,class_b)return len(students)def in_a_not_in_b(class_a,class_b):students = client.sdiff(class a , class b)return len(students)def in_a_or_in_b(class_a,class_b):students= client.sunion(classa,classb)return len(students)def in_a_or_in_b(class_a,class_b):students = client.sunion(class_a,class_b)return len(students)//选了至少一门课:all_student()//选了math没选computer的:in_a_not_in_b("math","computer")//选了math也选了computer的学生:in_a_and_in_b("math","computer")//选了math或选了computer的学生:in_a_or_in_b("math","computer")

"数据库集合相关命令有哪些"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

元素 作用 数据 学生 命令 一门 求出 交集 实际 数据库 三个 个数 内容 可以通过 唯一性 实时 实际上 差集 情况 数字 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 杭途科技网络安全监测装置 辽宁省青少年网络安全竞赛 中国第一次建立数据库 服务器10核处理器价格 vc 开发web服务器 海淀区定制软件开发经历 新人怎么学习安卓软件开发 数据库应用开发技术考试 服务器哪个版本最好 部队网络安全小演讲稿 今天税务服务器有问题 郑州aaa软件开发学院 服务器上用什么安全助手好 长春erp软件开发 河南工业软件开发公司 一列怎么生成一样的数据库 万方数据库系统的特点 重邮的网络安全咋样 测量服务器电源的电器特性 标签模板号段怎么关联数据库 云服务器10m的带宽相当于家用 县国土空间规划数据库规划 网络安全产业链官网 一轮全国网络安全和信息化 宝山区软件开发包括哪些 wind数据库收入熵指数在哪里 wincc实时数据库在哪里 郑州第三方软件开发靠谱吗 广东冲浪网络技术 待遇 服务器学习计划表格
0