最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

快速了解python leveldb

 更新時間:2018年01月18日 13:48:28   作者:kwsy2008  
這篇文章主要介紹了快速了解python leveldb,具有一定借鑒價值,需要的朋友可以參考下

本文主要是對leveldb進(jìn)行一個簡單的介紹及使用Python語言對其進(jìn)行操作的代碼示例,具體如下。

leveldb 是google實現(xiàn)的一種非常高效的key-value數(shù)據(jù)庫。key-value數(shù)據(jù)庫中,redis是比較知名且好用的,但它是一個內(nèi)存數(shù)據(jù)庫,而leveldb只需要少量的內(nèi)存,但速度依然很快,美中不足的是,沒有網(wǎng)絡(luò)服務(wù)封裝,這樣一來就只能單機(jī)使用,如果你實力足夠強(qiáng),也可以自己封裝一個。

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

新建數(shù)據(jù)庫很方便,如果這個目錄已經(jīng)存在就會直接打開,沒有的話就會新建。示例中給出了添加,刪除,和獲取的方法,注意,是沒有修改操作的。

二 、 遍歷

如何遍歷數(shù)據(jù)呢,也非常方便,你可以指定開始的key和結(jié)束的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 

三、 批量操作

如果我對數(shù)據(jù)庫有一大批操作,每一次都和數(shù)據(jù)庫進(jìn)行交互,其實挺浪費性能的,因此像mongodb,redis都提供了批量操作的方法,leveldb也是如此。下面是一個清空數(shù)據(jù)庫的例子

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)并沒有真正的刪除數(shù)據(jù),而是在db.Write(b)時執(zhí)行所有的操作

四、 快照

創(chuàng)建快照非常簡單,美中不足的是,再次加載數(shù)據(jù)庫以后,沒有方法找到之前創(chuàng)建的快照,難道已關(guān)閉這些快照就都不見了,這這樣的快照還有什么意思呢,也許只有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') 

總結(jié)

以上就是本文關(guān)于快速了解python leveldb的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關(guān)文章

  • Python實現(xiàn)批量提取word文件中文本框內(nèi)容

    Python實現(xiàn)批量提取word文件中文本框內(nèi)容

    在日常的辦公中,有時需要提取多個word文件中的文字框的內(nèi)容,這篇文章主要為大家介紹了三種常見的方法來提取文本框的內(nèi)容,希望對大家有一定的幫助
    2024-02-02
  • Python類的繼承、多態(tài)及獲取對象信息操作詳解

    Python類的繼承、多態(tài)及獲取對象信息操作詳解

    這篇文章主要介紹了Python類的繼承、多態(tài)及獲取對象信息操作,結(jié)合實例形式較為詳細(xì)的分析了Python面向?qū)ο蟪绦蛟O(shè)計中類、繼承、多態(tài)等相關(guān)操作技巧與注意事項,需要的朋友可以參考下
    2019-02-02
  • 詳談python3中用for循環(huán)刪除列表中元素的坑

    詳談python3中用for循環(huán)刪除列表中元素的坑

    下面小編就為大家分享一篇詳談python3中用for循環(huán)刪除列表中元素的坑,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python ftfy庫處理金融方面文件編碼錯誤實例詳解

    python ftfy庫處理金融方面文件編碼錯誤實例詳解

    這篇文章主要為大家介紹了使用python ftfy庫處理金融方面文件編碼錯誤實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • python跳出雙層for循環(huán)的解決方法

    python跳出雙層for循環(huán)的解決方法

    今天小編就為大家分享一篇python跳出雙層for循環(huán)的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • 利用tkinter實現(xiàn)下拉框聯(lián)動

    利用tkinter實現(xiàn)下拉框聯(lián)動

    這篇文章主要介紹了利用tkinter實現(xiàn)下拉框聯(lián)動問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • python能做哪些生活有趣的事情

    python能做哪些生活有趣的事情

    在本篇文章里小編給各位分享了關(guān)于python能做的生活有趣的事情,有興趣的朋友們可以學(xué)習(xí)下。
    2020-09-09
  • python使用雙豎線分割的實現(xiàn)

    python使用雙豎線分割的實現(xiàn)

    本文主要介紹了python使用雙豎線分割的實現(xiàn),通過接收用戶輸入的字符串,使用split()方法進(jìn)行分割,并將結(jié)果輸出給用戶,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • Python if語句知識點用法總結(jié)

    Python if語句知識點用法總結(jié)

    本篇文章給python初學(xué)者總結(jié)了關(guān)于Python之if語句的相關(guān)用法以及知識點總結(jié),跟著學(xué)習(xí)下吧。
    2018-06-06
  • 淺談Python之Django(四)

    淺談Python之Django(四)

    這篇文章主要介紹了Python3中的Django,小編覺得這篇文章寫的還不錯,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧,希望能夠給你帶來幫助
    2021-10-10

最新評論

临潭县| 雷州市| 建水县| 仙居县| 平山县| 攀枝花市| 招远市| 楚雄市| 汉源县| 巴里| 林州市| 连州市| 如皋市| 枞阳县| 原平市| 乳源| 仁布县| 南召县| 淮安市| 博湖县| 黄梅县| 北宁市| 宁南县| 江门市| 横峰县| 抚远县| 双桥区| 柳林县| 龙州县| 靖州| 常熟市| 柘荣县| 凤山县| 林芝县| 五寨县| 南城县| 同德县| 昌黎县| 大港区| 临朐县| 诸暨市|