【大數據處理】鍵值對數據庫Leveldb

RanHuish 8年前發布 | 20K 次閱讀 NoSQL數據庫

來自: http://blog.csdn.net//chenriwei2/article/details/45178249


Leveldb

  1. Leveldb介紹
    Leveldb是一個google實現的非常高效的(key-value)數據庫,能夠支持十億級別的數據量了。 在這個數量級別下還有著非常高的性能,主要歸功于它的良好的設計。
    LevelDB 是單進程的服務,性能非常之高,在一臺4核Q6600的CPU機器上,每秒鐘寫數據超過40w,而隨機讀的性能每秒鐘超過10w。
  2. Python Leveldb
    Python有實現了leveldb,在這里可以下載
  3. Python Leveldb 的安裝
    ubuntu下安裝leveldb非常的簡單
sudo pip install leveldb

即可搞定。
4. 使用也很簡單,其函數和參數也就那么幾個

import leveldb

注意需要先新建文件

import os mkdir('./db') db = leveldb.LevelDB('./db')

single put

db.Put('hello', 'world')

print db.Get('hello')

single delete

db.Delete('hello')

下面這一句會報錯。

print db.Get('hello')

multiple put/delete applied atomically, and committed to disk

batch = leveldb.WriteBatch() batch.Put('hello', 'world') batch.Put('hello again', 'world') batch.Delete('hello) db.Write(batch, sync= True) </pre>

實際中的應用:

我是學習和使用caffe才知道有leveldb 這個東西的,比leveldb更高級的有LMDB,不過我看了下其文檔,比leveldb復雜多了,先學習leveldb,有時間再學習leveldb。
在caffe中沒有python的leveldb 示例,都是用C++直接將圖片轉化leveldb,之前仿照著寫一個將自己的圖片保存為leveldb,訓練之后發現錯誤,而且找不到原因,所以就找了python的實現,畢竟python找錯誤比較簡單一些。

在caffe中,需要準備訓練數據,其中有多種數據的保存格式,比較高效的是leveldb和lmdb,比較低效的hdf5 和直接圖像文件。

要將訓練數據保存為leveldb或者lmdb,只要把數據轉化為鍵值對即可,即圖像為key,標簽為value。

</div>

 本文由用戶 RanHuish 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!