久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

數(shù)據(jù)庫集合相關(guān)命令有哪些

152次閱讀
沒有評論

共計 2333 個字符,預(yù)計需要花費 6 分鐘才能閱讀完成。

本篇內(nèi)容介紹了“數(shù)據(jù)庫集合相關(guān)命令有哪些”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

集合的性質(zhì): 唯一性, 無序性, 確定性
無序性,例:{1,2}=={2,1}
唯一性,每一個值都是唯一的

例:插入“python”,“golang”,“python ,“c”, java 5 個值,但實際上,Redis 返回的數(shù)字 4,表示實際上只插入了 4 個值。這是因為有兩個“python”,集合自動過濾了第 2 個 python”。

注: 在 string 和 link 的命令中, 可以通過 range 來訪問 string 中的某幾個字符或某幾個元素
但, 因為集合的無序性, 無法通過下標或范圍來訪問部分元素.

因此想看元素, 要么隨機先一個, 要么全選

sadd key  value1 value2

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

sadd 命令在遇到數(shù)據(jù)己經(jīng)存在時,會返回“0”,如果數(shù)據(jù)不存在則把數(shù)據(jù)插入再返回 1。所以,這條命令可以通過返回的數(shù)字來判斷數(shù)據(jù)是否存在。

srem value1 value2

作用: 刪除集合中集為 value1 value2 的元素
返回值: 忽略不存在的元素后, 真正刪除掉的元素的個數(shù)

spop key

作用: 返回并刪除集合中 key 中 1 個隨機元素
隨機 – 體現(xiàn)了無序性

(spop 會彈出 / 刪除 key 中的元素,可以用這個來抽獎,第一名抽出來,第二名,第三名 …)

srandmember key

作用: 返回集合 key 中, 隨機的 1 個元素.

(和 spop 不同,不會彈出 / 刪除 key 中的元素)

sismember key  value

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

smembers key

作用: 返回集中中所有的元素
注意:
smembers 命令不會刪除數(shù)據(jù)。但是如果集合里的數(shù)據(jù)量極大,就應(yīng)該慎重使用“獲取所有數(shù)據(jù),因為這樣會導(dǎo)致系統(tǒng)的 I / o 資源瞬間耗盡

scard key

作用: 返回集合中元素的個數(shù)

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

集合的應(yīng)用:
在工程中,Redis 的集合一般有兩種用途:
(I)根據(jù)集合內(nèi)數(shù)據(jù)不重復(fù)的特性實現(xiàn)去重并記錄信息。
(2)利用多個集合計算交集、并集和差集。
假設(shè),要做一個學生選課情況實時監(jiān)控系統(tǒng),則需要實時知道以下幾個數(shù)據(jù):
(I)當前一共有多少學生至少選了一門課。
(2)選了 A 課沒有選 B 課的學生有多少。
(3)既選了 A 課又選了 B 課的學生有多少。
(4) A、B 兩門課至少選了一門的學生有多少。
使用集合可以輕易實現(xiàn)這樣的功能。每一門課作為一個集合,里面的值就是每一個學生的
學號,如圖 5 -65 所示:
數(shù)據(jù)庫集合相關(guān)命令有哪些
用 python 實現(xiàn):

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)

“數(shù)據(jù)庫集合相關(guān)命令有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編將為大家輸出更多高質(zhì)量的實用文章!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-24發(fā)表,共計2333字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 桐梓县| 邢台市| 凯里市| 密云县| 阿城市| 万年县| 确山县| 镇沅| 克山县| 克拉玛依市| 五指山市| 辰溪县| 沭阳县| 碌曲县| 潢川县| 佛学| 砀山县| 神木县| 青岛市| 丰顺县| 大姚县| 滦平县| 民县| 勐海县| 大荔县| 墨脱县| 武川县| 乌拉特后旗| 平邑县| 罗田县| 遵义市| 莱芜市| 福州市| 伊金霍洛旗| 徐州市| 板桥市| 佛山市| 黄山市| 特克斯县| 晴隆县| 莒南县|