数据库集合相关命令有哪些-创新互联

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

专注于为中小企业提供成都网站建设、网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业广河免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

集合的性质: 唯一性,无序性,确定性
无序性,例:{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 redis

client = 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")

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

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享文章:数据库集合相关命令有哪些-创新互联
网页网址:http://pwwzsj.com/article/dijjjs.html