鍵值對存儲是數據庫最簡單的組織形式。基本上全部的編程語言都帶有應用在內存中的鍵值對存儲。C++STL的映射容器(map container)和Java的HashMap以及Python的字典類型都是鍵值對存儲。鍵值對存儲通常都有例如以下接口:
Get( key ):?獲取之前存儲於某標示符“key”之下的壹些數據,或者“key”下沒有數據時報錯。
Set( key, value ):?將“value”存儲到存儲空間中某標示符“key”下。使得我們能夠通過調用同樣的“key”來訪問它。
假設“key”下已經有了壹些數據,舊的數據將被替換。
Delete( key ):?刪除存儲在“key”下的數據。
大部分低層實現都是使用哈希表或者某種自平衡樹(比如B-樹或者紅黑樹)。有時候數據太大而不裝不進內存,或者必須維持數據謹防系統由於未知原因而崩潰。在這些情況下。就必須使用到文件系統。
鍵值對存儲是NoSQL運動的壹部分。NoSQL將全部不使用基於關系型數據庫概念的數據庫系統組合在壹起。
維基百科上的NoSQL詞條非常好的總結了這些數據庫的特征。
不使用SQL查詢語言
可不全面支持ACID(原子性、壹致性、隔離性、持久性)。
可提供分布式、容錯強的結構