【大數據處理】鍵值對數據庫Leveldb
來自: http://blog.csdn.net//chenriwei2/article/details/45178249
Leveldb
- Leveldb介紹
Leveldb是一個google實現的非常高效的(key-value)數據庫,能夠支持十億級別的數據量了。 在這個數量級別下還有著非常高的性能,主要歸功于它的良好的設計。
LevelDB 是單進程的服務,性能非常之高,在一臺4核Q6600的CPU機器上,每秒鐘寫數據超過40w,而隨機讀的性能每秒鐘超過10w。 - Python Leveldb
Python有實現了leveldb,在這里可以下載 - 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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!