中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

為什么最近好多網(wǎng)站維護(hù)沈陽(yáng)疫情最新消息

為什么最近好多網(wǎng)站維護(hù),沈陽(yáng)疫情最新消息,做動(dòng)態(tài)頭像的網(wǎng)站,公司網(wǎng)站制作注意什么引入 基礎(chǔ)理論的進(jìn)步,是推動(dòng)技術(shù)實(shí)現(xiàn)重大突破,促使相關(guān)領(lǐng)域的技術(shù)達(dá)成跨越式發(fā)展的核心。 在發(fā)展日新月異的大數(shù)據(jù)領(lǐng)域,基礎(chǔ)理論的核心無(wú)疑是算法。不管是技術(shù)設(shè)計(jì),還是工程實(shí)踐,都必須仰仗相關(guān)算法的支持&#xff0…

引入

基礎(chǔ)理論的進(jìn)步,是推動(dòng)技術(shù)實(shí)現(xiàn)重大突破,促使相關(guān)領(lǐng)域的技術(shù)達(dá)成跨越式發(fā)展的核心。

在發(fā)展日新月異的大數(shù)據(jù)領(lǐng)域,基礎(chǔ)理論的核心無(wú)疑是算法。不管是技術(shù)設(shè)計(jì),還是工程實(shí)踐,都必須仰仗相關(guān)算法的支持,才能夠真的落地應(yīng)用。

下面我們就看看大數(shù)據(jù)相關(guān)領(lǐng)域有哪些核心的算法。

存儲(chǔ)類算法

大數(shù)據(jù)存儲(chǔ)相關(guān)的核心算法,主要是為了高效存儲(chǔ)和管理海量數(shù)據(jù),以及提升數(shù)據(jù)讀寫性能和存儲(chǔ)利用率等。

以下我們來(lái)看看大數(shù)據(jù)領(lǐng)域最經(jīng)典的存儲(chǔ)類算法:

B樹及其變種(B+樹、B* 樹)

原理

  • B樹:是一種自平衡的多路搜索樹,每個(gè)節(jié)點(diǎn)可以有多個(gè)子節(jié)點(diǎn)。它的所有葉子節(jié)點(diǎn)都在同一層,并且包含了所有的數(shù)據(jù)。
  • B+樹:是 B樹的一種變種,它的非葉子節(jié)點(diǎn)只存儲(chǔ)索引信息,所有的數(shù)據(jù)都存儲(chǔ)在葉子節(jié)點(diǎn)中,葉子節(jié)點(diǎn)之間通過(guò)指針相連,形成一個(gè)有序鏈表,便于范圍查詢。(最通用)
  • B*樹:在 B+樹的基礎(chǔ)上,對(duì)節(jié)點(diǎn)的分裂規(guī)則進(jìn)行了優(yōu)化,提高了空間利用率。

應(yīng)用場(chǎng)景:廣泛應(yīng)用于關(guān)系型數(shù)據(jù)庫(kù)的索引結(jié)構(gòu),能夠高效地支持點(diǎn)查詢和范圍查詢。

優(yōu)點(diǎn):查詢、插入和刪除操作的時(shí)間復(fù)雜度都是 O (log n),性能穩(wěn)定。

缺點(diǎn):對(duì)于大規(guī)模數(shù)據(jù)的寫入操作,可能會(huì)導(dǎo)致頻繁的節(jié)點(diǎn)分裂和合并,影響性能。

B+樹是一種平衡的、多叉的樹形結(jié)構(gòu),能夠支持O(logn)的插入和查詢時(shí)間復(fù)雜度。B+樹的整個(gè)結(jié)構(gòu)是有序存儲(chǔ)的,這使得B+樹能夠高效地支持范圍查詢;在空間放大維度,B+樹能夠達(dá)到70%的空間利用率。綜上所述,B+樹有較好的綜合性能,在現(xiàn)代的諸多存儲(chǔ)系統(tǒng)中,B+樹索引很常見(jiàn),例如關(guān)系數(shù)據(jù)庫(kù)MySQL的默認(rèn)存儲(chǔ)引擎InnoDB。

在大數(shù)據(jù)領(lǐng)域是避免不了使用多線程與高并發(fā)場(chǎng)景的,所以需要對(duì)B+樹索引進(jìn)行并發(fā)控制。由于B+樹的樹形結(jié)構(gòu)會(huì)不斷動(dòng)態(tài)調(diào)整,要實(shí)現(xiàn)一個(gè)正確的多線程B+樹,存在著較大的設(shè)計(jì)挑戰(zhàn)。

目前來(lái)說(shuō),實(shí)現(xiàn)B+樹的并發(fā),可以采用以下3種機(jī)制:

  1. 鎖耦合
    鎖耦合機(jī)制是B+樹中應(yīng)用最為廣泛的一種加鎖方式。鎖耦合機(jī)制就是一種節(jié)點(diǎn)級(jí)別的加鎖方式,但是路徑上的節(jié)點(diǎn)的鎖會(huì)更早地釋放,同時(shí)能保證線程安全。在鎖耦合機(jī)制中,每個(gè)線程同時(shí)最多擁有兩個(gè)節(jié)點(diǎn)的鎖,分別為父節(jié)點(diǎn)和孩子節(jié)點(diǎn)。父節(jié)點(diǎn)的節(jié)點(diǎn)可以在孩子節(jié)點(diǎn)的鎖獲取之后釋放,這樣可以充分減少每個(gè)節(jié)點(diǎn)加鎖和釋放的臨界區(qū)大小,從而最大化多線程性能。
  2. 樂(lè)觀鎖機(jī)制
    采用鎖耦合機(jī)制,每個(gè)讀/寫線程仍然是互相阻塞的,而樂(lè)觀鎖機(jī)制則是為了減少寫線程對(duì)讀線程的阻塞,并進(jìn)一步減少加鎖的數(shù)量。內(nèi)部節(jié)點(diǎn)除節(jié)點(diǎn)內(nèi)部的鎖字段之外,還額外維護(hù)一個(gè)寫版本號(hào)。每當(dāng)寫線程對(duì)節(jié)點(diǎn)完成修改之后,先對(duì)寫版本號(hào)完成自增操作,隨后釋放寫鎖。每當(dāng)讀線程訪問(wèn)一個(gè)節(jié)點(diǎn)的時(shí)候,首先記錄節(jié)點(diǎn)版本號(hào),在完成對(duì)節(jié)點(diǎn)的訪問(wèn)之后檢測(cè)節(jié)點(diǎn)版本號(hào)是否發(fā)生變化,如果節(jié)點(diǎn)寫版本號(hào)發(fā)生變化,讀線程重做對(duì)該節(jié)點(diǎn)的訪問(wèn),否則意味著節(jié)點(diǎn)訪問(wèn)過(guò)程中該節(jié)點(diǎn)并未發(fā)生寫操作,因此讀節(jié)點(diǎn)操作成功執(zhí)行。
  3. 無(wú)鎖機(jī)制。
    通過(guò)無(wú)鎖的方式來(lái)操作B+樹,提升隨機(jī)讀和范圍查詢的性能。它的核心的思想是把B+樹的頁(yè)(page)通過(guò)page id(PID)映射到map,map的[key,value]變成[PID,page value]?,把直接對(duì)page的修改,變成一個(gè)修改的操作記錄,加入到“page value”?。所以“page value”可能是一個(gè)“base page”?,即page原始的內(nèi)容,和一串對(duì)page修改形成的記錄的鏈表,而在修改記錄鏈表中加入一個(gè)修改記錄節(jié)點(diǎn)可以很容易變成一個(gè)無(wú)鎖的方式來(lái)實(shí)現(xiàn)。另外,對(duì)B+樹的split和merge操作也通過(guò)類似的原理,把具體的操作細(xì)化成好幾個(gè)原子操作,避免傳統(tǒng)的加鎖方式。

SkipList(跳表)

原理

  • SkipList 是一種可以用來(lái)快速查找數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),它基于有序鏈表,并通過(guò)在鏈表節(jié)點(diǎn)上增加多層索引來(lái)提高查找效率。在 SkipList 中,每個(gè)節(jié)點(diǎn)都可能有多個(gè)指針,這些指針指向不同層次的下一個(gè)節(jié)點(diǎn),高層的指針可以跳過(guò)更多的節(jié)點(diǎn),從而加快查找速度。
  • 構(gòu)建 SkipList 時(shí),會(huì)按照一定的概率隨機(jī)決定每個(gè)節(jié)點(diǎn)在不同層次出現(xiàn)的概率。例如,一個(gè)節(jié)點(diǎn)可能以 50% 的概率出現(xiàn)在第一層,以 25% 的概率出現(xiàn)在第二層,以 12.5% 的概率出現(xiàn)在第三層,以此類推。這樣就形成了一個(gè)類似金字塔形狀的多層結(jié)構(gòu),使得查找操作可以在對(duì)數(shù)時(shí)間內(nèi)完成。

應(yīng)用場(chǎng)景:由于 SkipList 在插入、刪除和查找操作上都具有較高的效率,適合在內(nèi)存中存儲(chǔ)和操作大量的有序數(shù)據(jù),能夠快速地根據(jù)分?jǐn)?shù)對(duì)元素進(jìn)行排序和查找;在分布式哈希表(DHT)等分布式數(shù)據(jù)結(jié)構(gòu)中,SkipList 可以用于實(shí)現(xiàn)節(jié)點(diǎn)之間的快速路由和數(shù)據(jù)查找。通過(guò)在不同節(jié)點(diǎn)上構(gòu)建 SkipList 結(jié)構(gòu),可以高效地定位數(shù)據(jù)所在的節(jié)點(diǎn),提高分布式系統(tǒng)的性能和可擴(kuò)展性。

優(yōu)點(diǎn):SkipList 的插入、刪除和查找操作的平均時(shí)間復(fù)雜度為 O (log n),與平衡樹(如紅黑樹)等數(shù)據(jù)結(jié)構(gòu)相當(dāng),但 SkipList 的實(shí)現(xiàn)相對(duì)簡(jiǎn)單,代碼復(fù)雜度較低,易于理解和維護(hù)。而且 SkipList 支持動(dòng)態(tài)擴(kuò)展和收縮,能夠方便地適應(yīng)數(shù)據(jù)量的變化。

缺點(diǎn):SkipList 的空間復(fù)雜度相對(duì)較高,因?yàn)槊總€(gè)節(jié)點(diǎn)可能包含多個(gè)指針,需要額外的空間來(lái)存儲(chǔ)這些指針。此外,由于 SkipList 的節(jié)點(diǎn)層數(shù)是隨機(jī)生成的,在極端情況下可能會(huì)出現(xiàn)查找性能下降的情況,但這種情況發(fā)生的概率較低。

跳躍表(SkipList)是一種能高效實(shí)現(xiàn)插入、刪除、查找的內(nèi)存數(shù)據(jù)結(jié)構(gòu),這些操作的期望復(fù)雜度都是O(logN)。與紅黑樹以及其他的二分查找樹相比,跳躍表的優(yōu)勢(shì)在于實(shí)現(xiàn)簡(jiǎn)單,而且在并發(fā)場(chǎng)景下加鎖粒度更小,從而可以實(shí)現(xiàn)更高的并發(fā)性。正因?yàn)檫@些優(yōu)點(diǎn),跳躍表廣泛使用于KV數(shù)據(jù)庫(kù)中,諸如Redis、LevelDB、HBase都把跳躍表作為一種維護(hù)有序數(shù)據(jù)集合的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)。

LSM樹(Log-Structured Merge Tree)

原理:將數(shù)據(jù)的寫入操作先記錄在內(nèi)存中(通常是一個(gè)有序的數(shù)據(jù)結(jié)構(gòu),如跳表),當(dāng)內(nèi)存中的數(shù)據(jù)達(dá)到一定閾值后,再批量地將數(shù)據(jù)寫入磁盤,形成一個(gè)有序的數(shù)據(jù)文件(SSTable,Sorted String Table)。磁盤上的數(shù)據(jù)會(huì)按層級(jí)進(jìn)行組織,不同層級(jí)的數(shù)據(jù)會(huì)定期進(jìn)行合并操作,以減少數(shù)據(jù)冗余和提高查詢效率。

應(yīng)用場(chǎng)景:適用于寫多讀少的場(chǎng)景,如日志存儲(chǔ)、時(shí)間序列數(shù)據(jù)存儲(chǔ)等。

優(yōu)點(diǎn):寫入性能高,能夠快速處理大量的寫入請(qǐng)求;

缺點(diǎn):讀取時(shí)可能需要合并多個(gè) SSTable,讀取性能相對(duì)較低,并且在合并過(guò)程中會(huì)產(chǎn)生一定的 I/O 開銷。

2000年年初,Google發(fā)表了Bigtable的論文,論文中的創(chuàng)新點(diǎn)之一就是它所使用的文件組織方式,即LSM樹。

算法的核心也是基于硬件特性來(lái),才能真正的解決落地的問(wèn)題。對(duì)于磁盤讀寫來(lái)說(shuō),順序讀寫要遠(yuǎn)比隨機(jī)讀寫快,LSM樹通過(guò)將隨機(jī)寫轉(zhuǎn)化為順序?qū)?#xff0c;消去隨機(jī)的本地更新操作來(lái)提高寫入性能,但查詢(包括點(diǎn)查詢和范圍查詢)性能會(huì)有一定程度的下降,因?yàn)橐淮尾樵儾僮骺赡芤闅v磁盤中的許多個(gè)不同的SST文件。針對(duì)查詢性能問(wèn)題,在不同應(yīng)用實(shí)現(xiàn)時(shí)會(huì)有一些優(yōu)化,比如在HBase中設(shè)計(jì)了異步的compaction來(lái)降低文件個(gè)數(shù),來(lái)提高讀取性能。

LSM樹本質(zhì)上和B+樹一樣,是一種磁盤數(shù)據(jù)的索引結(jié)構(gòu)。但和B+樹不同的是,LSM樹的索引對(duì)寫入請(qǐng)求更友好。因?yàn)闊o(wú)論是何種寫入請(qǐng)求,LSM樹都會(huì)將寫入操作處理為一次順序?qū)憽?/em>

LSM樹的索引一般由兩部分組成,一部分是內(nèi)存部分,一部分是磁盤部分。內(nèi)存部分一般采用跳躍表來(lái)維護(hù)一個(gè)有序的KeyValue集合。磁盤部分一般由多個(gè)內(nèi)部KeyValue有序的文件組成。

哈希算法(Hash Tables)

原理:通過(guò)哈希函數(shù)將鍵映射到一個(gè)固定大小的數(shù)組中,數(shù)組中的每個(gè)位置稱為一個(gè)槽(Slot)。當(dāng)插入、查找或刪除數(shù)據(jù)時(shí),先計(jì)算鍵的哈希值,然后根據(jù)哈希值找到對(duì)應(yīng)的槽。如果發(fā)生哈希沖突(即不同的鍵映射到了同一個(gè)槽),可以采用開放尋址法、鏈地址法等方法來(lái)解決。

應(yīng)用場(chǎng)景:適用于快速查找和插入的場(chǎng)景,如緩存系統(tǒng)、分布式哈希表(DHT)等。在分布式系統(tǒng)中,一致性哈希算法是一種常用的哈希算法,用于實(shí)現(xiàn)數(shù)據(jù)的均勻分布和節(jié)點(diǎn)的動(dòng)態(tài)擴(kuò)展。

優(yōu)點(diǎn):平均查找、插入和刪除操作的時(shí)間復(fù)雜度為 O (1),性能高效;

缺點(diǎn):哈希函數(shù)的設(shè)計(jì)比較關(guān)鍵,如果哈希函數(shù)設(shè)計(jì)不當(dāng),可能會(huì)導(dǎo)致哈希沖突頻繁,影響性能。并且哈希表不支持范圍查詢。

哈希表是一種無(wú)序的數(shù)據(jù)結(jié)構(gòu),它提供了快速的插入操作和查找操作。

一個(gè)好的哈希表能夠保證插入和查找的時(shí)間復(fù)雜度為O(1),即插入和查詢性能與哈希表中的數(shù)據(jù)量無(wú)關(guān)。這種設(shè)計(jì)可以實(shí)現(xiàn)高效的寫性能和查詢性能,但是它犧牲了范圍查詢性能。

哈希表結(jié)構(gòu)設(shè)計(jì)中最關(guān)鍵的問(wèn)題是:

  1. 如何選擇合適的哈希函數(shù);
  2. 如何選擇合適的哈希沖突處理機(jī)制。

常見(jiàn)的哈希沖突解決機(jī)制有四種:

  1. 鏈地址法。
    在鏈地址法下,哈希表的每個(gè)桶由一個(gè)鏈表構(gòu)成。鏈表中存儲(chǔ)的是所有哈希值相同的鍵值對(duì)。因此在進(jìn)行查詢操作時(shí),可以通過(guò)遍歷該鏈表查詢對(duì)應(yīng)的鍵值對(duì)。
  2. 線性探測(cè)法。
    在線性探測(cè)法下,哈希表是一個(gè)連續(xù)的桶數(shù)組,對(duì)于任意一個(gè)哈希鍵,根據(jù)哈希函數(shù)定位到一個(gè)映射位置,插入和查找都基于該地址進(jìn)行向后探測(cè)。當(dāng)插入一個(gè)鍵值時(shí),判斷映射地址是否為空,如果該地址為空,則在映射地址插入鍵值對(duì),否則向后探測(cè)直到找到空桶,并將該鍵值對(duì)放入該空桶。查詢操作則從映射地址開始向后掃描所有鍵值對(duì),直到找到待查詢鍵值對(duì)或者遇到一個(gè)空桶。
  3. 雙選擇法。
    雙選擇法采用兩個(gè)獨(dú)立的哈希函數(shù),對(duì)于每個(gè)鍵值對(duì),都有兩個(gè)可插入的桶。當(dāng)執(zhí)行插入的時(shí)候,根據(jù)兩個(gè)哈希函數(shù)分別將哈希鍵映射到兩個(gè)桶a和b中。根據(jù)桶a和桶b的填充度,選擇填充度更低的桶插入鍵值對(duì)。同樣,執(zhí)行查詢操作時(shí),只需要遍歷兩個(gè)桶即可定位到查詢鍵值。
  4. 布谷鳥探測(cè)法。
    布谷鳥探測(cè)法是雙選擇法的一種變種。它同樣采用兩個(gè)哈希函數(shù)。當(dāng)執(zhí)行鍵值對(duì)插入時(shí),根據(jù)兩個(gè)哈希函數(shù)分別將哈希鍵映射到兩個(gè)桶a和b中。如果桶a和b存在空閑位置,則將鍵值對(duì)插入到空閑位置中;否則,隨機(jī)挑選一個(gè)桶中的鍵值對(duì),將其踢出該桶,并存入待插入鍵值對(duì),被踢出的鍵值對(duì)則嘗試插入到其對(duì)應(yīng)的另一個(gè)桶中。

采用不同哈希沖突解決方式,在查詢性能、插入性能、哈希表填充度三個(gè)維度會(huì)有不同的表現(xiàn),解決哈希沖突的方案也是沒(méi)有“銀彈”。

鏈地址法的插入性能更優(yōu),并且對(duì)于空間的占用是逐漸增長(zhǎng)的;線性探測(cè)法的填充度可以做到最優(yōu),但是這是以犧牲查詢和插入性能為前提的;在查詢性能上,布谷鳥和雙選擇法會(huì)比其他方法更優(yōu)。在實(shí)際的鍵值數(shù)據(jù)庫(kù)中,不同的設(shè)計(jì)會(huì)采用不同的哈希函數(shù)和哈希沖突解決機(jī)制。Redis采用的就是鏈地址法,這使得Redis的空間占用更為緩慢,空間管理也更為靈活。

LRU(Least Recently Used)和 LFU(Least Frequently Used)緩存算法

原理

  • LRU:基于 “最近最少使用” 的原則,當(dāng)緩存空間滿時(shí),優(yōu)先淘汰最近最少使用的數(shù)據(jù)。通常使用雙向鏈表和哈希表來(lái)實(shí)現(xiàn),雙向鏈表用于維護(hù)數(shù)據(jù)的訪問(wèn)順序,哈希表用于快速查找數(shù)據(jù)。
  • LFU:基于 “最不經(jīng)常使用” 的原則,當(dāng)緩存空間滿時(shí),優(yōu)先淘汰使用頻率最低的數(shù)據(jù)??梢允褂枚鄠€(gè)鏈表和哈希表來(lái)實(shí)現(xiàn),每個(gè)鏈表存儲(chǔ)相同使用頻率的數(shù)據(jù)。

應(yīng)用場(chǎng)景:常用于緩存系統(tǒng)中,如數(shù)據(jù)庫(kù)緩存、Web 服務(wù)器緩存等,以提高數(shù)據(jù)的訪問(wèn)速度。

優(yōu)點(diǎn)

  • LRU:實(shí)現(xiàn)簡(jiǎn)單,能夠較好地反映數(shù)據(jù)的訪問(wèn)局部性。
  • LFU:能夠更好地適應(yīng)數(shù)據(jù)的使用頻率。

缺點(diǎn)

  • LRU:對(duì)于某些特殊的訪問(wèn)模式,可能會(huì)導(dǎo)致性能下降。
  • LFU:實(shí)現(xiàn)相對(duì)復(fù)雜,并且在數(shù)據(jù)訪問(wèn)模式發(fā)生變化時(shí),需要一定的時(shí)間來(lái)調(diào)整。

總結(jié)

今天提到的都是存儲(chǔ)相關(guān)最核心的算法,本文主要是拋磚引玉,后續(xù)在分享大數(shù)據(jù)相關(guān)組件底層實(shí)現(xiàn)原理時(shí),有涉及到相關(guān)算法的時(shí)候,我們?cè)偕钊肟纯础?/p>

http://www.risenshineclean.com/news/42251.html

相關(guān)文章:

  • 網(wǎng)站建設(shè)職能績(jī)效目標(biāo)網(wǎng)站建設(shè) 全網(wǎng)營(yíng)銷
  • 電腦軟件和網(wǎng)站怎么做win7優(yōu)化大師官方網(wǎng)站
  • 微信公眾號(hào)如何創(chuàng)建視頻鏈接站長(zhǎng)seo軟件
  • wordpress新聞列表如何制作seo點(diǎn)擊器
  • 用動(dòng)易做的校園網(wǎng)站建站平臺(tái)
  • 如何做網(wǎng)站哪個(gè)站推廣營(yíng)銷網(wǎng)站定制公司
  • 慶云網(wǎng)站建設(shè)ihuibestseo外包網(wǎng)站
  • 智慧農(nóng)業(yè)網(wǎng)站建設(shè)網(wǎng)絡(luò)銷售
  • 天河做網(wǎng)站設(shè)計(jì)一個(gè)新產(chǎn)品怎么推廣
  • 免費(fèi)b2b網(wǎng)站推廣嘿嘿2023年最新新聞?wù)?/a>
  • 手機(jī)端網(wǎng)站提交表單驗(yàn)證代碼畢節(jié)地seo
  • 建設(shè)網(wǎng)站所有步驟蘇州百度
  • 蘇州專門網(wǎng)站線上推廣方案
  • 做非物質(zhì)文化遺產(chǎn)網(wǎng)站的風(fēng)險(xiǎn)長(zhǎng)沙優(yōu)化排名
  • 互聯(lián)網(wǎng)開網(wǎng)站怎么做企業(yè)網(wǎng)站建設(shè)的作用
  • 網(wǎng)站建設(shè)后期維護(hù)個(gè)人在線網(wǎng)站推廣
  • 方正集團(tuán)網(wǎng)站是誰(shuí)做的電腦培訓(xùn)網(wǎng)上免費(fèi)課程
  • 中國(guó)科協(xié)網(wǎng)站建設(shè)招標(biāo)游戲推廣是什么工作
  • 開通網(wǎng)站后今天國(guó)內(nèi)新聞
  • 網(wǎng)站地圖做計(jì)劃任務(wù)seo搜索引擎優(yōu)化人才
  • 江蘇省建設(shè)招標(biāo)網(wǎng)站首頁(yè)阿里云域名查詢和注冊(cè)
  • 網(wǎng)站備案org甘肅百度推廣電話
  • 深圳門戶網(wǎng)站建設(shè)方案搜索引擎營(yíng)銷的案例有哪些
  • 找人做網(wǎng)站價(jià)格鄭州seo網(wǎng)絡(luò)營(yíng)銷
  • 響應(yīng)式自適應(yīng)網(wǎng)站模板杭州seo培訓(xùn)
  • 嘉興網(wǎng)站建設(shè)下載app
  • 深圳人才市場(chǎng)招聘網(wǎng)最新招聘信息疫情二十條優(yōu)化措施
  • 個(gè)人網(wǎng)站做淘寶客教程網(wǎng)絡(luò)營(yíng)銷課程培訓(xùn)課程
  • 鄂爾多斯網(wǎng)站建設(shè)高端大氣網(wǎng)站建設(shè)
  • 濟(jì)南建設(shè)委員會(huì)網(wǎng)站網(wǎng)站收錄一鍵提交