快速了解python leveldb

2022-10-04 20:27:25 字數 1959 閱讀 2412

本文主要是對leveldb進行乙個簡單的介紹及使用python語言對其進行操作的**示例,具體如下。

leveldb 是google實現的一種非常高效的key-value資料庫。key-value資料庫中,redis是比較知名且好用的,但它是乙個記憶體資料庫,而leveldb只需要少量的記憶體,但速度依然很快,美中不足的是,沒有網路服務封裝,這樣一來就只能單機使用,如果你實力足夠強,也可以自己封裝乙個。

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') oyueyop

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))

p keys

keys_values = list(db.rangeiter())

print keys_values

三、 批量操作

如果我對資料庫有一大批操作,每一次都和資料庫進行互動,其實挺浪費效能的,因此像mongodb,redis都提供了批量操作的方法,leveldb也是如此。下面是乙個清空資料庫的例子

def clear_db():

db = leveldb.leveldb('./data')

b = leveldb.writebatch()

www.cppcns.com 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程式設計客棧')

總結

快速了解 Redis

比如 a 首頁一天有 100 萬人訪問,其中有乙個板塊為推薦新聞。要是直接從資料庫查詢,那麼一天就要多消耗 100 萬次資料庫請求。使用 redis 可以將這種熱點資料存到 redis 記憶體 中,要用的時候直接從記憶體取,極大的提高了速度和節約了伺服器的開銷 redis 也可用於訊息佇列,通過 l...

快速了解 Redis

比如 a 首頁一天有 100 萬人訪問,其中有乙個板塊為推薦新聞。要是直接從資料庫查詢,那麼一天就要多消耗 100 萬次資料庫請求。使用 redis 可以將這種熱點資料存到 redis 記憶體 中,要用的時候直接從記憶體取,極大的提高了速度和節約了伺服器的開銷 redis 也可用於訊息佇列,通過 l...

快速了解serverless

serverless 無伺服器計算架構,是雲計算時代的一種革命性架構模式,可以看做下一代計算資源架構 serverless概念主要思想就是無需使用者關注支撐應用服務的底層主機資源服務,因此使用者在一定程度上不能設定後端地具體資源配置檔案,所需要的資源數量由平台動態進行排程,簡單的說就是 去基礎架構 ...