Redis內存優(yōu)化與回收策略_第1頁
Redis內存優(yōu)化與回收策略_第2頁
Redis內存優(yōu)化與回收策略_第3頁
Redis內存優(yōu)化與回收策略_第4頁
Redis內存優(yōu)化與回收策略_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1/1Redis內存優(yōu)化與回收策略第一部分內存存儲結構優(yōu)化 2第二部分數據結構選擇與空間利用 4第三部分內存過期策略與回收機制 6第四部分內存淘汰策略與LRU算法 8第五部分內存碎片整理與空間回收 10第六部分內存使用監(jiān)控與性能分析 13第七部分大Value優(yōu)化與壓縮技術 15第八部分內存優(yōu)化工具與最佳實踐 17

第一部分內存存儲結構優(yōu)化關鍵詞關鍵要點【數據結構優(yōu)化】:

1.Redis使用不同的數據結構來存儲不同類型的數據,如字符串、哈希表、列表和集合等。通過選擇合適的結構,可以有效優(yōu)化內存使用和性能。

2.采用可變長數據結構,如字符串和列表,可以節(jié)省內存空間,因為它們只需要存儲實際數據長度。反之,固定大小的數據結構,如哈希表中的槽位,會浪費空間,特別是當數據量較小或不均勻分布時。

3.壓縮和編碼技術可以進一步減少內存占用。例如,Redis使用RLE(Run-LengthEncoding)壓縮重復字節(jié)序列,并使用字典編碼來存儲頻繁出現的字符串,從而節(jié)省大量空間。

【內存分配算法優(yōu)化】:

Redis內存優(yōu)化與回收策略

內存存儲結構優(yōu)化

Redis的數據結構優(yōu)化主要集中在兩種數據結構:哈希表和跳躍表。

哈希表優(yōu)化

*使用關聯數組:Redis使用關聯數組來存儲鍵和值,這可以減少查找操作的復雜度。

*使用漸進式哈希:Redis使用漸進式哈希,即根據鍵的大小動態(tài)調整哈希表的大小,以優(yōu)化內存利用率。

*使用負載因子:Redis使用負載因子來監(jiān)控哈希表的填充率,當負載因子超過閾值時,Redis會重新哈希表,以減少沖突和提升性能。

跳躍表優(yōu)化

*使用跳躍鏈接:Redis使用跳躍鏈接來創(chuàng)建多層的鏈表,這可以提升搜索速度。

*使用概率采樣:Redis使用概率采樣來選擇跳躍鏈接,這可以減少跳躍表的內存消耗。

*使用稀疏跳躍表:Redis使用稀疏跳躍表,即跳躍鏈接只在某些節(jié)點上存在,這可以進一步節(jié)省內存。

其他內存優(yōu)化技術

除了數據結構優(yōu)化外,Redis還使用以下技術來優(yōu)化內存使用:

*使用內存池:Redis使用內存池來管理內存分配,這可以減少內存碎片并提升性能。

*使用壓縮算法:Redis使用壓縮算法來壓縮數據,這可以節(jié)省大量內存空間。

*使用持久化策略:Redis提供多種持久化策略,例如RDB和AOF,這可以將數據保存到磁盤上,從而釋放內存空間。

回收策略

當Redis的內存占用超過其限制時,它會啟動回收策略來釋放內存空間。Redis提供以下回收策略:

*LRU:最近最少使用策略,Redis會釋放最長時間未使用的鍵。

*LFU:最不經常使用策略,Redis會釋放最不經常使用的鍵。

*TTL:到期策略,Redis會釋放具有過期時間的鍵。

*Minmemory:最小內存策略,Redis會釋放占用最多內存的鍵。

*Allkeys-lru:所有鍵LRU策略,Redis會釋放所有鍵,按LRU順序。

Redis會根據數據集和應用程序的特性選擇最合適的回收策略。對于具有過期時間的鍵較多的數據集,TTL策略可能是一個不錯的選擇。對于頻繁更新數據集,LFU或LRU策略可能是更合適的選擇。第二部分數據結構選擇與空間利用關鍵詞關鍵要點Redis數據結構選擇

-選擇合適的數據結構:根據數據訪問模式和性能需求,選擇最合適的數據結構,如哈希、列表、集合等。

-考慮空間開銷:不同數據結構占用不同的內存空間,選擇空間開銷較小的數據結構,特別是在處理大量數據時。

-利用數據壓縮:對于某些數據類型,如字符串和哈希,Redis提供了壓縮功能以減少空間消耗。

Redis鍵值大小優(yōu)化

-控制鍵值長度:過長的鍵值會占用更多的內存,應盡量保持鍵值簡潔且有意義。

-使用高效的數據類型:選擇占用更少空間的數據類型,如使用整數表示標識符而不是字符串。

-定期清理無效數據:刪除不再使用或過期的鍵值,釋放內存空間并提升性能。Redis數據結構選擇與空間利用

Redis提供多種數據結構,每種結構都有其特定的優(yōu)勢和適用場景。選擇正確的數據結構對于優(yōu)化空間利用和性能至關重要。

鍵值對(String)

鍵值對是最基本的Redis數據結構,存儲鍵和關聯的值。值可以是字符串、數字或其他數據類型。

*優(yōu)點:簡單易用,占用空間小,可以快速讀寫。

*缺點:無法存儲大對象或復雜數據結構。

列表(List)

列表是一個有序的字符串序列,支持push、pop、append等操作。

*優(yōu)點:可以存儲大量字符串,實現快速插入和刪除操作。

*缺點:如果列表很長,讀取中間元素的復雜度為O(n)。

集合(Set)

集合存儲不重復的元素,支持添加、刪除和交集、并集等操作。

*優(yōu)點:快速檢查元素是否存在,占用空間小。

*缺點:無法存儲重復元素,不支持范圍查詢。

有序集合(SortedSet)

有序集合類似于集合,但元素具有一個關聯的評分。支持添加、刪除和基于評分排序等操作。

*優(yōu)點:快速查找元素,可以根據評分對元素進行排序。

*缺點:占用空間比集合大,插入和刪除操作復雜度為O(logn)。

哈希(Hash)

哈希存儲鍵值對的集合,鍵和值都可以是字符串、數字或其他數據類型。

*優(yōu)點:可以存儲復雜的數據結構,支持快速查找和更新操作。

*缺點:占用空間較大,無法直接存儲大對象。

位圖(Bitmap)

位圖是緊湊的二進制字符串,每個位表示一個元素是否存在。

*優(yōu)點:非常節(jié)省空間,可以存儲大量布爾值。

*缺點:不支持范圍查詢,位操作相對復雜。

空間利用優(yōu)化

除了選擇正確的數據結構以外,還有其他優(yōu)化空間利用的策略:

*壓縮:Redis使用RLE壓縮算法壓縮字符串值,可以顯著減少空間占用。

*批量操作:Redis支持批量操作,如MSET和DEL等,可以減少網絡開銷并優(yōu)化空間利用。

*數據類型轉換:將數據從一種類型轉換為另一種類型(如將列表轉換為集合)可以節(jié)省空間。

*使用過期策略:設置過期時間可以自動刪除未使用的鍵,從而釋放空間。

數據結構選擇示例

以下是一些數據結構選擇示例:

*如果需要快速存儲和檢索少量文本值,則應選擇鍵值對。

*如果需要存儲大量有序數據,則應選擇有序集合。

*如果需要檢查成員資格或執(zhí)行交集和并集操作,則應選擇集合。

*如果需要存儲復雜的數據結構或快速查找和更新操作,則應選擇哈希。

*如果需要存儲大量布爾值,則應選擇位圖。

通過仔細選擇數據結構和優(yōu)化空間利用策略,可以顯著提高Redis的性能和效率。第三部分內存過期策略與回收機制關鍵詞關鍵要點【過期策略與回收機制】:,

1.過期策略類型:Redis支持多種過期策略,包括被動過期、定期過期和非過期鍵。

2.過期時間管理:Redis使用時間戳存儲密鑰的過期時間,并通過字典和鏈表結構管理即將過期的鍵,有效提升查詢效率。

3.隨機采樣算法:Redis采用隨機采樣算法判斷是否有過期鍵需要回收,避免遍歷所有鍵的開銷,提高回收效率。

【LFU(最少使用頻率)算法】:,內存過期策略

Redis提供多種內存過期策略,允許用戶指定鍵值對的過期時間。這些策略包括:

*無過期時間:鍵值對永不過期。

*固定過期時間:為鍵值對設置一個固定的過期時間。

*空閑時間:鍵值對在指定時間內未被訪問后過期。

*LRU(最近最少使用):從最近最少使用的鍵值對開始過期。

*LFU(最不經常使用):從最不經常使用的鍵值對開始過期。

*隨機過期:隨機選擇鍵值對過期。

內存回收機制

當Redis內存使用達到一定閾值時,它將觸發(fā)內存回收機制,以釋放未使用的內存空間?;厥諜C制根據所選的內存過期策略,采用以下技術:

惰性刪除:

*當訪問過期鍵時,Redis會將其刪除。

*這種方法不會主動回收內存,但節(jié)省了遍歷數據集的開銷。

定期刪除:

*Redis定時掃描數據集,并刪除過期的鍵。

*這種方法主動釋放內存,但也可能增加開銷。

刪除策略:

*volatile-lru:從所有鍵值對中刪除最近最少使用的過期鍵。

*volatile-ttl:從固定過期時間的鍵值對中刪除最早過期的鍵。

*volatile-random:隨機刪除過期鍵。

*allkeys-lru:從所有鍵值對中刪除最近最少使用的鍵。

*allkeys-ttl:從所有鍵值對中刪除最早過期的鍵。

*allkeys-random:隨機刪除所有鍵值對。

最佳實踐

選擇正確的內存過期策略和回收機制至關重要,以優(yōu)化內存使用和性能。以下是一些最佳實踐:

*對于經常訪問的數據,使用無過期時間或長過期時間。

*對于不經常訪問的數據,使用空閑時間或LRU策略。

*對于頻繁更新的數據,使用較短的過期時間或隨機過期策略。

*根據數據集大小和訪問模式,調整定期刪除的頻率和刪除策略。第四部分內存淘汰策略與LRU算法內存淘汰策略與LRU算法

對于Redis而言,內存是一個寶貴的資源,需要謹慎管理。當內存可用空間不足時,Redis會采用內存淘汰策略來釋放內存空間。其中,LRU(最近最少使用)算法是一種常用的淘汰策略。

#內存淘汰策略

Redis提供了幾種內存淘汰策略,包括:

*noeviction(不淘汰):Redis不會主動淘汰任何鍵值對,直到內存耗盡。

*allkeys-lru(所有鍵LRU):根據LRU算法淘汰所有鍵值對。

*volatile-lru(易失鍵LRU):僅對帶有效期的鍵值對應用LRU算法。

*allkeys-random(所有鍵隨機):隨機淘汰鍵值對。

*volatile-random(易失鍵隨機):僅對帶有效期的鍵值對應用隨機淘汰算法。

*volatile-ttl(易失鍵TTL):優(yōu)先淘汰即將過期的鍵值對。

#LRU算法

LRU算法基于這樣的假設:最近最少使用的鍵值對不太可能再次被使用,因此可以被淘汰以釋放內存空間。LRU算法使用鏈表或哈希表來實現,其中每個結點表示一個鍵值對。

最近使用隊列:

*LRU算法維護一個最近使用隊列,按使用時間倒序排列。

*當一個鍵值對被訪問時,它會被移到隊列的頭部。

淘汰機制:

*當需要釋放內存空間時,LRU算法會從隊列的尾部開始淘汰鍵值對。

*被淘汰的鍵值對將從Redis內存中刪除,釋放其占據的內存空間。

#LRU算法的優(yōu)勢

*簡單有效:LRU算法易于理解和實現,并且在大多數情況下有效。

*公平:LRU算法對所有鍵值對一視同仁,不會偏袒任何特定鍵值對。

*低開銷:LRU算法的開銷相對較低,不會對Redis的性能產生顯著影響。

#LRU算法的局限性

*不考慮鍵值對大?。篖RU算法不考慮鍵值對的大小,可能會淘汰較大的鍵值對而保留較小的鍵值對。

*不考慮鍵值對訪問頻率:LRU算法只考慮最近的使用時間,而沒有考慮鍵值對的訪問頻率。

#優(yōu)化LRU算法

為了優(yōu)化LRU算法,可以采取以下措施:

*分層LRU:將內存分為多個區(qū)域,每個區(qū)域采用不同的LRU算法。

*加權LRU:為鍵值對分配權重,權重較高的鍵值對不太容易被淘汰。

*二次機會LRU:在淘汰鍵值對之前,給它們一次額外的機會被再次訪問。第五部分內存碎片整理與空間回收內存碎片

內存碎片是指由于內存塊分配和釋放的不均衡導致的,使得內存中出現無法被連續(xù)分配的空間片段。碎片的存在會降低內存利用率,影響程序性能。

內存碎片主要分為兩種類型:

*內部碎片:指已分配的內存塊中,由于實際使用的內存空間小于分配的空間大小而產生的碎片。

*外部碎片:指在若干個分配的內存塊之間存在無法分配的空閑內存碎片。

回收策略

內存回收策略是指系統(tǒng)回收未使用的內存塊并將其歸還給內存管理器的過程。常用的回收策略包括:

1.引用計數

*為每個內存塊維護一個引用計數器,記錄指向該內存塊的指針數。

*當引用計數器減為0時,表示該內存塊不再被任何指針引用,可以被回收。

*優(yōu)點:簡單高效,適用于引用關系明確的情況。

*缺點:無法處理循環(huán)引用問題。

2.標記-清除

*為每個內存塊添加一個標記位,最初置為未標記。

*從一個根節(jié)點(例如全局變量區(qū))出發(fā),遞歸遍歷所有可達的內存塊,并標記為可達。

*遍歷完成后,未標記的內存塊即為不可達,可以被回收。

*優(yōu)點:可以處理循環(huán)引用問題。

*缺點:需要遍歷整個內存空間,開銷較大。

3.標記-整理-清除

*與標記-清除類似,但在標記完成后,將可達內存塊整理到內存一端,空閑內存塊整理到另一端。

*優(yōu)點:減少外部碎片,提高內存利用率。

*缺點:整理過程開銷較大。

4.分代收集

*將內存空間劃分為不同的代,例如新生代和老年代。

*新生代回收頻繁,但開銷?。焕夏甏厥詹活l繁,但開銷大。

*優(yōu)點:根據對象的生命周期優(yōu)化回收策略,提高性能。

*缺點:實現復雜。

5.增量收集

*將回收過程分階段進行,每次只回收一小部分內存空間。

*優(yōu)點:減少對程序執(zhí)行的暫停時間,提高響應性。

*缺點:實現復雜。

內存優(yōu)化建議

為了優(yōu)化內存使用和減少碎片,可以采取以下建議:

*盡量減少內存分配和釋放操作。

*使用對象池管理常用對象。

*避免使用全局變量,使用局部變量。

*使用智能指針管理內存,如std::shared_ptr和std::unique_ptr。

*定期進行內存分析,找出內存使用問題。第六部分內存使用監(jiān)控與性能分析內存使用監(jiān)控與優(yōu)化

1.監(jiān)控內存使用情況

監(jiān)控Redis的內存使用情況對于優(yōu)化至關重要??梢酝ㄟ^以下方法進行監(jiān)控:

*Redis命令:使用`INFOMEMORY`命令可獲取有關內存使用的詳細信息,包括已用內存、碎片內存等。

*監(jiān)控軟件:諸如Prometheus、InfluxDB等監(jiān)控軟件可以收集并可視化Redis的內存使用情況數據。

2.減少內存碎片

內存碎片是指Redis分配的內存塊之間存在空隙,無法分配給新數據。這會導致浪費內存并降低Redis的整體效率??梢酝ㄟ^以下方法減少內存碎片:

*啟用內存碎片整理:Redis提供了`activedefrag`選項來主動整理內存,減少碎片。

*使用LRU緩存:LRU(最近最少使用)緩存會將不常用的數據逐出內存,從而釋放空間并減少碎片。

*定期重啟Redis:重啟Redis可以整理內存并釋放碎片。

3.優(yōu)化數據類型

選擇合適的Redis數據類型可以顯著減少內存使用。以下是優(yōu)化數據類型的準則:

*使用整數替代字符串:整數比字符串占用更少的內存。

*考慮雙向鏈表:對于存儲有序數據,雙向鏈表比哈希表占用更少的內存。

*使用壓縮:Redis提供壓縮算法,可以減少某些數據類型(如哈希表、有序集合)的內存消耗。

4.調整配置參數

Redis提供了多個配置參數來優(yōu)化內存使用。以下是一些重要的參數:

*maxmemory:設置Redis可使用的最大內存。

*maxmemory-policy:規(guī)定Redis在達到maxmemory限制時的行為,可以是noeviction、volatile-lru、allkeys-lru或volatile-random。noeviction禁止驅逐,其他選項會逐出不同策略的數據。

*hash-max-ziplist-entries:設置哈希表壓縮所需的最低條目數。

*list-max-ziplist-entries:設置列表壓縮所需的最低條目數。

5.監(jiān)視內存回收

Redis提供了以下選項來處理內存回收:

*定時器:Redis在后臺定期啟動時器,以回收空閑內存。

*手動回收:可以通過執(zhí)行`MEMORYDOCTOR`命令手動啟動回收。

*LRU驅逐:根據LRU策略驅逐不常用的數據。

6.其他優(yōu)化技巧

除了上面提??及的措施外,以下技巧還可以進一步優(yōu)化Redis的內存使用:

*合理設置數據集:避免將大數據集存儲在Redis中。

*避免長時間執(zhí)行的查詢:長時間執(zhí)行的查詢可能會阻塞Redis,并防止它回收內存。

*使用Redis集群:Redis集群將數據分布在多臺機器上,可以減少單臺機器的內存壓力。第七部分大Value優(yōu)化與壓縮技術關鍵詞關鍵要點大Value優(yōu)化與壓縮技術

主題名稱:數據分片

1.將大Value切分為多個小塊,分別存儲在Redis中。

2.減少單個Value的內存占用,提高讀取和寫入效率。

3.適用于存儲結構化數據或大文本數據。

主題名稱:BloomFilter

大Value優(yōu)化與壓縮技術

當Redis中存在大量大Value時,內存占用會顯著增加。為了優(yōu)化內存使用并提高性能,Redis提供了多種大Value優(yōu)化和壓縮技術。

1.分塊編碼

當Value超過一定閾值(默認為10KB)時,Redis將其分塊并分別編碼每個塊。分塊編碼將大Value分解為更小的塊,每個塊單獨編碼,從而減少內存消耗。

2.RDB持久化優(yōu)化

在RDB快照過程中,大Value默認被壓縮并存儲在單獨的文件中(稱為RDB-AUX文件)。這可以顯著減少RDB文件大小和持久化時間。

3.內存優(yōu)化分配器(jemalloc)

jemalloc是Redis中默認使用的內存分配器。它提供了一些針對大Value分配的優(yōu)化,例如:

*巨大頁面支持:jemalloc可以使用巨型頁面(通常為2MB)分配大Value,這可以減少內存碎片并提高性能。

*稀疏映射:jemalloc稀疏映射技術允許大Value分散存儲在內存中,從而降低內存碎片。

4.壓縮

Redis支持對大Value進行在線和離線壓縮。

*在線壓縮:在線壓縮在寫入大Value時進行,可以使用LZF、Snappy或zstd算法。

*離線壓縮:離線壓縮在RDB快照期間或通過BGREWRITEAOF命令執(zhí)行,提供了更高的壓縮率,但會增加CPU使用率。

5.采樣和淘汰

Redis可以對大Value進行采樣和淘汰,以回收不再使用的內存。

*采樣:Redis定期采樣大Value并收集其訪問統(tǒng)計數據。

*淘汰:根據訪問頻率和其他標準,Redis可以淘汰不經常訪問的大Value。

選擇優(yōu)化策略

選擇合適的優(yōu)化策略取決于大Value的大小、訪問模式和其他系統(tǒng)特性。

大Value大小小于1MB:使用分塊編碼。

大Value大小在1MB到10MB之間:使用分塊編碼和RDB持久化優(yōu)化。

大Value大小大于10MB:使用分塊編碼、RDB持久化優(yōu)化、jemalloc和壓縮。

頻繁訪問的大Value:不要壓縮,使用分塊編碼和RDB持久化優(yōu)化。

不頻繁訪問的大Value:使用所有優(yōu)化技術,包括壓縮、采樣和淘汰。第八部分內存優(yōu)化工具與最佳實踐關鍵詞關鍵要點【內存持久化】

1.RDB(Redis數據庫):通過定期將數據以快照的方式保存到硬盤,保證數據持久性,重啟后可快速恢復。

2.AOF(附加文件):以追加的方式記錄服務器執(zhí)行的所有寫操作,保證數據的完整性,重啟后需逐條重放日志恢復數據。

3.混合持久化:結合RDB和AOF的優(yōu)點,在指定時間間隔進行RDB快照,同時持續(xù)記錄AOF日志,兼顧速度和安全性。

【內存淘汰策略】

內存優(yōu)化工具與最佳實踐

1.Rebalance(內存再平衡)

Rebalance是一個定期執(zhí)行的后臺任務,用于將鍵值對在Redis集群節(jié)點之間重新分配,以優(yōu)化內存使用率和性能。它通過將熱點數據移動到負載較低的節(jié)點上來實現平衡。

2.ActiveDefragmentation(主動碎片整理)

主動碎片整理是一個后臺進程,用于合并相鄰的內存塊,消除碎片并優(yōu)化內存使用率。當鍵值對被刪除或更新時,可能會產生碎片,主動碎片整理會定期運行以回收這些碎片空間。

3.LazyFreel(惰性釋放)

惰性釋放是一種內存管理技術,允許Redis在不立即回收內存的情況下刪除鍵值對。當鍵不再被訪問時,它會被標記為過期,并在一段時間(默認1小時)后被實際刪除。這可以減少內存開銷,但會增加查找過期的鍵值對的開銷。

4.使用ZIPLIST和HASH表

ZIPLIST和HASH表是Redis用于存儲數據結構的兩種高效數據結構。相對于字符串類型,它們可以節(jié)省大量的內存空間,尤其是在存儲小鍵值對或集合類型數據時。

5.限制數據結構Gr??e

限制HASH表、列表和集合等數據結構的Gr??e可以防止內存使用量失控。Redis提供了`maxmemory-policy`配置選項,允許設置內存大小限制,并按照特定的回收策略回收超過限制的數據。

6.持久化和快照

持久化和快照是創(chuàng)建Redis數據副本的機制,可以用來在出現故障時恢復數據。但是,持久化和快照會消耗額外的內存空間,因此在內存優(yōu)化時需要權衡使用它們的成本和收益。

7.優(yōu)化鍵值對大小

減少鍵值對的大小可以節(jié)省大量的內存空間??梢允褂胉substr`命令來截取較長的鍵,并使用`hget`和`hset`命令來訪問HASH表中的單個字段,而不是整個HASH表。

8.使用過期時間(TTL)

給鍵值對設置過期時間(TTL)可以自動刪除不需要的數據,釋放內存空間。然而,TTL會導致額外的CPU開銷,因此需要仔細考慮使用場景。

最佳實踐

*定期使用REBALANCE命令以優(yōu)化內存分布

*啟用主動碎片整理以減少碎片

*適當地使用惰性釋放以平衡內存開銷

*使用ZIPLIST和HASH表來節(jié)省內存空間

*限制數據結構Gr??e以防止內存使用量失控

*謹慎使用持久化和快照以避免額外的內存開銷

*優(yōu)化鍵值對大小以節(jié)省空間

*使用過期時間(TTL)自動刪除不需要的數據

*監(jiān)控內存使用情況并定期調整配置以保持最佳性能關鍵詞關鍵要點【1.Redis內存????へぇへぇへぇへへへ,2.Redis數據[へへ],3.Redis[嘿嘿],4.Redis內置,5.Redisへぇへぇ,6.Redis],7.),へ,8.],へ,9.へ,10.へ,11.へ,12.へ,13.へ,14.へ,15.へ,16.へ,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論