快速了解python leveldb


Posted in Python onJanuary 18, 2018

本文主要是对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') 
 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的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
paramiko模块安装和使用(远程登录服务器)
Jan 27 Python
Python实现PS图像调整黑白效果示例
Jan 25 Python
python中利用h5py模块读取h5文件中的主键方法
Jun 05 Python
Python中实现单例模式的n种方式和原理
Nov 14 Python
75条笑死人的知乎神回复,用60行代码就爬完了
May 06 Python
Python基础学习之函数方法实例详解
Jun 18 Python
python安装requests库的实例代码
Jun 25 Python
详解Python中的正斜杠与反斜杠
Aug 09 Python
解决python web项目意外关闭,但占用端口的问题
Dec 17 Python
pycharm无法导入本地模块的解决方式
Feb 12 Python
wxPython修改文本框颜色过程解析
Feb 14 Python
基于django和dropzone.js实现上传文件
Nov 24 Python
Python实现动态图解析、合成与倒放
Jan 18 #Python
Python基于matplotlib实现绘制三维图形功能示例
Jan 18 #Python
Python实现在tkinter中使用matplotlib绘制图形的方法示例
Jan 18 #Python
python中requests和https使用简单示例
Jan 18 #Python
Python使用matplotlib实现绘制自定义图形功能示例
Jan 18 #Python
Python基于csv模块实现读取与写入csv数据的方法
Jan 18 #Python
python将字典内容存入mysql实例代码
Jan 18 #Python
You might like
PHP生成随机数的方法实例分析
2015/01/22 PHP
php安全配置记录和常见错误梳理(总结)
2017/03/28 PHP
CSS3画一个阴阳八卦图
2021/03/09 HTML / CSS
jquery多浏览器捕捉回车事件代码
2010/06/22 Javascript
jQuery阻止冒泡和HTML默认操作
2010/11/17 Javascript
查看大图功能代码jquery版
2013/11/05 Javascript
原生js实现网易轮播图效果
2020/04/10 Javascript
在vue项目中,将juery设置为全局变量的方法
2018/09/25 Javascript
微信小程序mpvue点击按钮获取button值的方法
2019/05/29 Javascript
微信小程序 行的删除和增加操作实现详解
2019/09/29 Javascript
vue插件--仿微信小程序showModel实现模态提示窗功能
2020/08/19 Javascript
关于element的表单组件整理笔记
2021/02/05 Javascript
Handtrack.js库实现实时监测手部运动(推荐)
2021/02/08 Javascript
详解duck typing鸭子类型程序设计与Python的实现示例
2016/06/03 Python
[原创]python爬虫(入门教程、视频教程)
2018/01/08 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
2018/01/22 Python
Python八大常见排序算法定义、实现及时间消耗效率分析
2018/04/27 Python
Python基于最小二乘法实现曲线拟合示例
2018/06/14 Python
使用Python 统计高频字数的方法
2019/01/31 Python
Python利用sqlacodegen自动生成ORM实体类示例
2019/06/04 Python
对python3 Serial 串口助手的接收读取数据方法详解
2019/06/12 Python
对Pytorch中nn.ModuleList 和 nn.Sequential详解
2019/08/18 Python
Python 装饰器@,对函数进行功能扩展操作示例【开闭原则】
2019/10/17 Python
Python sqlite3查询操作过程解析
2020/02/20 Python
DataFrame.groupby()所见的各种用法详解
2020/06/14 Python
详解Python GUI编程之PyQt5入门到实战
2020/12/10 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
2020/12/10 Python
Python运算符+与+=的方法实例
2021/02/18 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
2021/02/22 Python
完美解决IE8下不兼容rgba()的问题
2017/03/31 HTML / CSS
创业计划书——互联网商机
2014/01/12 职场文书
《自选商场》教学反思
2014/02/14 职场文书
市场营销方案范文
2014/03/11 职场文书
大学社团计划书
2014/05/01 职场文书
2014年节能工作总结
2014/12/18 职场文书
SONY AN-LP1 短波有源天线放大器图
2022/04/05 无线电