当前位置: 首页 > 工具软件 > py-leveldb > 使用案例 >

[928]python leveldb

甄霖
2023-12-01

Leveldb是一个google实现的非常高效的kv数据库,目前的版本1.2能够支持billion级别的数据量了。 在这个数量级别下还有着非常高的性能,主要归功于它的良好的设计。特别是LSM算法。

LevelDB 是单进程的服务,性能非常之高,在一台4个Q6600的CPU机器上,每秒钟写数据超过40w,而随机读的性能每秒钟超过10w。

py-leveldb 是 Google 的 K/V 数据库LevelDB的 Python 客户端开发包。

linux安装

pip install leveldb
pip install cython  # plyvel需要用到c环境
pip install plyvel   # python 连接leveldb模块

读写

def single_operate():
    db = leveldb.LevelDB('./data')
    db.Put('foo','东升')
    print db.Get('foo')
    db.Delete('foo')
    print db.Get('foo')

新建数据库很方便,如果这个目录已经存在就会直接打开,没有的话就会新建。示例中给出了添加,删除,和获取的方法,注意,是没有修改操作的。

批量操作

如果我对数据库有一大批操作,每一次都和数据库进行交互,其实挺浪费性能的,因此像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)时执行所有的操作

  • 批量操作2
import leveldb

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

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

参考:https://www.oschina.net/p/py-leveldb?fromerr=G5QJs7l1
http://www.zhangdongshengtech.com/article-detials/89

windows上编译leveldb.lib和安装plyvel:https://www.e-learn.cn/topic/1900422
Windows上安装py-leveldb:http://www.voidcn.com/article/p-eqbmpbmo-xd.html

 类似资料:

相关阅读

相关文章

相关问答