本文主要是對leveldb進行一個簡單的介紹及使用Python語言對其進行操作的代碼示例,具體如下。
leveldb 是google實現的一種非常高效的key-value數據庫。key-value數據庫中,redis是比較知名且好用的,但它是一個內存數據庫,而leveldb只需要少量的內存,但速度依然很快,美中不足的是,沒有網絡服務封裝,這樣一來就只能單機使用,如果你實力足夠強,也可以自己封裝一個。
python/51695.html">python版本的leveldb安裝很簡單,pip install leveldb
接下來重點介紹使用方法。
一 、 讀寫
def single_operate(): db = leveldb.LevelDB('./data') db.Put('foo','東升') print db.Get('foo') db.Delete('foo') print db.Get('foo') 新建數據庫很方便,如果這個目錄已經存在就會直接打開,沒有的話就會新建。示例中給出了添加,刪除,和獲取的方法,注意,是沒有修改操作的。
二 、 遍歷
如何遍歷數據呢,也非常方便,你可以指定開始的key和結束的key,也可以指定順序,是否帶value
def test_iter(): db = leveldb.LevelDB('./data') for i in xrange(10): db.Put(str(i), 'string_%s' % i) print list(db.RangeIter(key_from = '2', key_to = '5')) print list(db.RangeIter(key_from = '2', key_to = '5',reverse=True)) def iter_key_values(): db = leveldb.LevelDB('./data') for i in xrange(10): db.Put(str(i), 'string_%s' % i) keys = list(db.RangeIter(include_value = False)) print keys keys_values = list(db.RangeIter()) print keys_values 三、 批量操作
如果我對數據庫有一大批操作,每一次都和數據庫進行交互,其實挺浪費性能的,因此像mongodb,redis都提供了批量操作的方法,leveldb也是如此。下面是一個清空數據庫的例子
def clear_db(): db = leveldb.LevelDB('./data') b = leveldb.WriteBatch() for k in db.RangeIter(include_value = False, reverse = True): b.Delete(k) db.Write(b) b.Delete(k)并沒有真正的刪除數據,而是在db.Write(b)時執行所有的操作
四、 快照
創建快照非常簡單,美中不足的是,再次加載數據庫以后,沒有方法找到之前創建的快照,難道已關閉這些快照就都不見了,這這樣的快照還有什么意思呢,也許只有python版本的快照是這樣的吧
def test_snapshot(): db = leveldb.LevelDB('./data') db.Put('foo','s1') s1 = db.CreateSnapshot() db.Put('foo','s2') s2 = db.CreateSnapshot() print db.Get('foo') print s1.Get('foo') print s2.Get('foo') 總結
以上就是本文關于快速了解python leveldb的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
新聞熱點
疑難解答