快速了解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 相关文章推荐
Python中使用 Selenium 实现网页截图实例
Jul 18 Python
Python多线程同步Lock、RLock、Semaphore、Event实例
Nov 21 Python
Python中处理unchecked未捕获异常实例
Jan 17 Python
python 显示数组全部元素的方法
Apr 19 Python
pip命令无法使用的解决方法
Jun 12 Python
Python实现求解一元二次方程的方法示例
Jun 20 Python
python TK库简单应用(实时显示子进程输出)
Oct 29 Python
pytorch模型预测结果与ndarray互转方式
Jan 15 Python
如何在python中执行另一个py文件
Apr 30 Python
Django Model中字段(field)的各种选项说明
May 19 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
Sep 23 Python
聊聊pytorch测试的时候为何要加上model.eval()
May 23 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
让你同时上传 1000 个文件 (一)
2006/10/09 PHP
在PHP中养成7个面向对象的好习惯
2010/07/17 PHP
PHP下通过file_get_contents的代理使用方法
2011/02/16 PHP
用PHP书写安全的脚本代码
2012/02/05 PHP
PHP 文件编程综合案例-文件上传的实现
2013/07/03 PHP
PHP内置的Math函数效率测试
2014/12/01 PHP
总结PHP删除字符串最后一个字符的三种方法
2016/08/30 PHP
YII2 实现多语言配置的方法分享
2017/01/11 PHP
解决laravel 5.1报错:No supported encrypter found的办法
2017/06/07 PHP
thinkPHP框架中layer.js的封装与使用方法示例
2019/01/18 PHP
msn上的tab功能Firefox对childNodes处理的一个BUG
2008/01/21 Javascript
关于使用 jBox 对话框的提交不能弹出问题解决方法
2012/11/07 Javascript
简单选项卡 js和jquery制作方法分享
2014/02/26 Javascript
在JavaScript中构建ArrayList示例代码
2014/09/17 Javascript
javascript实现图像循环明暗变化的方法
2015/02/25 Javascript
详解jQuery uploadify文件上传插件的使用方法
2016/12/16 Javascript
jquery tmpl模板(实例讲解)
2017/09/02 jQuery
详解bootstrap用dropdown-menu实现上下文菜单
2017/09/22 Javascript
js动态引入的四种方法
2018/05/05 Javascript
微信小程序实现团购或秒杀批量倒计时
2020/11/01 Javascript
Vue实现一个图片懒加载插件
2019/03/11 Javascript
vue实现修改图片后实时更新
2019/11/14 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
Python实现数据可视化看如何监控你的爬虫状态【推荐】
2018/08/10 Python
Pytorch训练过程出现nan的解决方式
2020/01/02 Python
关于matplotlib-legend 位置属性 loc 使用说明
2020/05/16 Python
Python通过zookeeper实现分布式服务代码解析
2020/07/22 Python
Python扫描端口的实现
2021/01/25 Python
英国家用电器购物网站:Hughes
2018/02/23 全球购物
Hotter Shoes美国官网:英国最受欢迎的舒适鞋
2018/08/02 全球购物
日本著名的服饰鞋帽综合类购物网站:MAGASEEK
2019/01/09 全球购物
人力资源本科毕业生求职信
2014/06/04 职场文书
社区志愿者活动总结
2014/06/26 职场文书
Nginx反向代理配置的全过程记录
2021/06/22 Servers
Apache Hudi的多版本清理服务彻底讲解
2022/03/31 Servers
Win10加载疑难解答时出错发生意外错误的解决方法
2022/07/07 数码科技