這里寫目錄標題
- 哈希表的原理精講
- 哈希表結構體定義
- 企業級應用
- 檔案介面
- 儲存基本單位
- 檔案存盤單位
- 檔案結構
哈希表的原理精講
哈希表 - 散串列,它是基于快速存取的角度設計的,也是一種典型的“空間換時間”的做法
| 鍵(key) | 組員的編號 |
|---|---|
| 值(value) | 組員的其它資訊 |
| 索引 | 陣列的下標(0,1,2,3,4) ,用以快速定位和檢索資料 |
| 哈希桶 | 保存索引的陣列(鏈表或陣列),陣列成員為每一個索引值相同的多個元素 |
| 哈希函式 | 將組員編號映射到索引上,采用求余法 |
原理示意圖:

哈希表結構體定義
#define DEFAULT_SIZE 16
typedef struct _ListNode
{
struct _ListNode *next;
int key; void *data;
}ListNode;
typedef ListNode *List;
typedef ListNode *Element;
typedef struct _HashTable
{
int TableSize;
List *Thelists;
}HashTable;
企業級應用
根據淘寶資料分析,有上十億的商品,每一個商品有包括大量的圖片和文字需要大量塊磁盤來保存.
1PB = 1024 TB = 1024 * 1024 GB
淘寶針對海量非結構化資料存盤設計出了的一款分布式系統,叫TFS,它構筑在普通的Linux機器集群上,可為外部提供高可靠和高并發的存盤訪問,
檔案介面
檔案系統 -一種把資料組織成檔案和目錄的存盤方式,提供了基于檔案的存取介面,并通過檔案權限控制訪問,

儲存基本單位
扇區 - 硬碟的最小存盤存盤單位(Sector),一般每個扇區儲存512位元組(相當于0.5KB)

- 磁盤的每一面被分為很多條磁道,即表面上的一些同心圓,越接近中心,圓就越小,
- 而每一個磁道又按512個位元組為單位劃分為等分,叫做扇區.
檔案存盤單位
塊 - 檔案存取的最小單位,"塊"的大小,最常見的是4KB,即連續八個 sector組成一個 block,


檔案結構
作業系統自動將硬碟分成三個區域,
- 目錄項區 - 存放目錄下檔案的串列資訊
- 資料區 - 存放檔案資料
- inode區(inode table) - 存放inode所包含的資訊

關于Inode
- inode - “索引節點”,儲存檔案的元資訊,比如檔案的創建者、檔案的創建日期、檔案的大小等等,每個inode都有一個號碼,作業系統用inode號碼來識別不同的檔案,
- inode節點大小 - 一般是128位元組或256位元組,inode節點的總數,格式化時就給定,一般是每1KB或每2KB就設定一個inode,一塊1GB的硬碟中,每1KB就設定一個inode,那么inode table的大小就會達到128MB,占整塊硬碟的12.8%,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/277836.html
標籤:其他
上一篇:Redis基本概念知識
