快速了解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 相关文章推荐
基于hashlib模块--加密(详解)
Jun 21 Python
Python实现好友全头像的拼接实例(推荐)
Jun 24 Python
从请求到响应过程中django都做了哪些处理
Aug 01 Python
Python实现登陆文件验证方法
Oct 06 Python
python3的输入方式及多组输入方法
Oct 17 Python
Python3.6.x中内置函数总结及讲解
Feb 22 Python
python getpass实现密文实例详解
Sep 24 Python
python安装scipy的步骤解析
Sep 28 Python
浅谈Python中range与Numpy中arange的比较
Mar 11 Python
python文件排序的方法总结
Sep 13 Python
只用Python就可以制作的简单词云
Jun 07 Python
Python中glob库实现文件名的匹配
Jun 18 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实现的最大正向匹配算法示例
2017/12/19 PHP
JS 面向对象的5钟写法
2009/07/31 Javascript
jquery 全局AJAX事件使用代码
2010/11/05 Javascript
JavaScript中的View-Model使用介绍
2011/08/11 Javascript
滚动条响应鼠标滑轮事件实现上下滚动的js代码
2014/06/30 Javascript
Javascript中Array用法实例分析
2015/06/13 Javascript
BootStrap的Datepicker控件使用心得分享
2016/05/25 Javascript
ui组件之input多选下拉实现方法(带有搜索功能)
2016/07/14 Javascript
angularjs 表单密码验证自定义指令实现代码
2016/10/27 Javascript
javascript帧动画(实例讲解)
2017/09/02 Javascript
EasyUI Tree树组件无限循环的解决方法
2017/09/27 Javascript
JavaScript 数组去重并统计重复元素出现的次数实例
2017/12/14 Javascript
完美解决axios跨域请求出错的问题
2018/02/05 Javascript
在vue项目中引入highcharts图表的方法(详解)
2018/03/05 Javascript
你点的 ES6一些小技巧,请查收
2018/04/25 Javascript
Vue 全局loading组件实例详解
2018/05/29 Javascript
Vue生命周期activated之返回上一页不重新请求数据操作
2020/07/26 Javascript
[40:12]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python计算最大优先级队列实例
2013/12/18 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
2017/10/20 Python
详解Python之unittest单元测试代码
2018/01/24 Python
详解python多线程、锁、event事件机制的简单使用
2018/04/27 Python
python字符串Intern机制详解
2019/07/01 Python
flask应用部署到服务器的方法
2019/07/12 Python
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
流行文化收藏品:Sideshow(DC漫画,星球大战,漫威)
2019/03/17 全球购物
2014的自我评价
2014/01/13 职场文书
医学生就业推荐表自我鉴定
2014/03/26 职场文书
节水倡议书范文
2014/04/15 职场文书
2014年三万活动总结
2014/04/26 职场文书
公司授权委托书范文
2014/08/02 职场文书
邹越感恩父母演讲稿
2014/08/28 职场文书
2015年三八妇女节活动总结
2015/02/06 职场文书
公司承诺书格式范文
2015/04/28 职场文书
2016年毕业实习心得体会范文
2015/10/09 职场文书
阿里云ECS云服务器快照的概念以及如何使用
2022/04/21 Servers