LevelDB數(shù)據(jù)庫(kù) v1.22 綠色免費(fèi)版

2022-07-09發(fā)布者:lisi大?。?/span> 下載:0

文件大小:

軟件介紹

LevelDB數(shù)據(jù)庫(kù)是Google編寫的一個(gè)快速鍵值存儲(chǔ)庫(kù),LevelDB應(yīng)用了LSM (Log Structured Merge) 策略,lsm_tree對(duì)索引變更進(jìn)行延遲及批量處理,它提供了從字符串鍵到字符串值的有序映射,調(diào)用者可以提供一個(gè)自定義比較函數(shù)來(lái)覆蓋排序順序。

image.png

功能介紹
鍵和值是任意的字節(jié)數(shù)組。
數(shù)據(jù)是按鍵排序存儲(chǔ)的。
調(diào)用者可以提供一個(gè)自定義比較函數(shù)來(lái)覆蓋排序順序。
基本的操作是Put(key,value)、Get(key)、Delete(key)。
在一個(gè)原子批中可以進(jìn)行多次修改。
用戶可以創(chuàng)建瞬時(shí)快照,以獲得數(shù)據(jù)的一致視圖。
在數(shù)據(jù)上支持向前和向后迭代。
使用Snappy壓縮庫(kù)對(duì)數(shù)據(jù)進(jìn)行自動(dòng)壓縮。
外部活動(dòng)(文件系統(tǒng)操作等)通過(guò)虛擬接口中轉(zhuǎn),因此用戶可以自定義操作系統(tǒng)的交互。
LevelDB的特點(diǎn)和限制如下:
特點(diǎn):
1、key和value都是任意長(zhǎng)度的字節(jié)數(shù)組;
2、entry(即一條K-V記錄)默認(rèn)是按照key的字典順序存儲(chǔ)的,當(dāng)然開發(fā)者也可以重載這個(gè)排序函數(shù);
3、提供的基本操作接口:Put()、Delete()、Get()、Batch();
4、支持批量操作以原子操作進(jìn)行;
5、可以創(chuàng)建數(shù)據(jù)全景的snapshot(快照),并允許在快照中查找數(shù)據(jù);
6、可以通過(guò)前向(或后向)迭代器遍歷數(shù)據(jù)(迭代器會(huì)隱含的創(chuàng)建一個(gè)snapshot);
7、自動(dòng)使用Snappy壓縮數(shù)據(jù);
8、可移植性;
限制:
1、非關(guān)系型數(shù)據(jù)模型(NoSQL),不支持sql語(yǔ)句,也不支持索引;
2、一次只允許一個(gè)進(jìn)程訪問一個(gè)特定的數(shù)據(jù)庫(kù);
3、沒有內(nèi)置的C/S架構(gòu),但開發(fā)者可以使用LevelDB庫(kù)自己封裝一個(gè)server;
更新日志
修正了格式,使其符合Google C++ Style Guide的要求。
特別導(dǎo)出Windows鏈接的WriteBatch::Handler內(nèi)部類。
Merge pull request #665 from cheng-chang:coding.
Merge pull request #669 from pavel-pimenov:fix-readme-windows-mkdir.
Merge pull request #472 from zhoudayang:patch-1.
Merge pull request #339 from richcole-at-amazon:master.
用 CMake 構(gòu)建恢復(fù) soname 版本。
其他雜項(xiàng)清理、修復(fù)和改進(jìn)。
寫操作流程:
1、順序?qū)懭氪疟Plog文件;
2、寫入內(nèi)存memtable(采用skiplist結(jié)構(gòu)實(shí)現(xiàn));
3、寫入磁盤SST文件(sorted string table files),這步是數(shù)據(jù)歸檔的過(guò)程(永久化存儲(chǔ));
注意:
log文件的作用是是用于系統(tǒng)崩潰恢復(fù)而不丟失數(shù)據(jù),假如沒有Log文件,因?yàn)閷懭氲挠涗泟傞_始是保存在內(nèi)存中的,此時(shí)如果系統(tǒng)崩潰,內(nèi)存中的數(shù)據(jù)還沒有來(lái)得及Dump到磁盤,所以會(huì)丟失數(shù)據(jù);
在寫memtable時(shí),如果其達(dá)到check point(滿員)的話,會(huì)將其改成immutable memtable(只讀),然后等待dump到磁盤SST文件中,此時(shí)也會(huì)生成新的memtable供寫入新數(shù)據(jù);
memtable和sst文件中的key都是有序的,log文件的key是無(wú)序的;
LevelDB刪除操作也是插入,只是標(biāo)記Key為刪除狀態(tài),真正的刪除要到Compaction的時(shí)候才去做真正的操作;
LevelDB沒有更新接口,如果需要更新某個(gè)Key的值,只需要插入一條新紀(jì)錄即可;或者先刪除舊記錄,再插入也可;

發(fā)表評(píng)論(共0條評(píng)論)
請(qǐng)自覺遵守互聯(lián)網(wǎng)相關(guān)政策法規(guī),評(píng)論內(nèi)容只代表網(wǎng)友觀點(diǎn),發(fā)表審核后顯示!

版權(quán)聲明:

1 本站所有資源(含游戲)均是軟件作者、開發(fā)商投稿,任何涉及商業(yè)盈利目的均不得使用,否則產(chǎn)生的一切后果將由您自己承擔(dān)!

2 本站將不對(duì)任何資源負(fù)法律責(zé)任,所有資源請(qǐng)?jiān)谙螺d后24小時(shí)內(nèi)刪除。

3 若有關(guān)在線投稿、無(wú)法下載等問題,請(qǐng)與本站客服人員聯(lián)系。

4 如侵犯了您的版權(quán)、商標(biāo)等,請(qǐng)立刻聯(lián)系我們并具體說(shuō)明情況后,本站將盡快處理刪除,聯(lián)系QQ:2499894784

返回頂部