快速了解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爬虫之HTTP异常处理
Nov 05 Python
Python 爬虫学习笔记之单线程爬虫
Sep 21 Python
Python编程判断一个正整数是否为素数的方法
Apr 14 Python
关于Python数据结构中字典的心得
Dec 04 Python
Python常用字符串替换函数strip、replace及sub用法示例
May 21 Python
解决python 自动安装缺少模块的问题
Oct 22 Python
Python 数据可视化pyecharts的使用详解
Jun 26 Python
python+logging+yaml实现日志分割
Jul 22 Python
python 字符串常用函数详解
Sep 11 Python
Python基于类路径字符串获取静态属性
Mar 12 Python
如何用python批量调整视频声音
Dec 22 Python
python井字棋游戏实现人机对战
Apr 28 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+MySql编写聊天室
2006/10/09 PHP
PHP 远程关机实现代码
2009/11/10 PHP
使用PHP实现下载CSS文件中的图片
2015/12/06 PHP
php提交post数组参数实例分析
2015/12/17 PHP
Yii实现显示静态页的方法
2016/04/25 PHP
远离JS灾难css灾难之 js私有函数和css选择器作为容器
2011/12/11 Javascript
10个基于浏览器的JavaScript调试工具分享
2013/02/07 Javascript
JS定时器实例
2013/04/17 Javascript
jQuery拖动图片删除示例
2013/05/10 Javascript
实用又漂亮的BootstrapValidator表单验证插件
2016/05/30 Javascript
异步加载JS、CSS代码(推荐)
2016/06/15 Javascript
浅谈js的异步执行
2016/10/18 Javascript
react-native 封装选择弹出框示例(试用ios&android)
2017/07/11 Javascript
深入探究AngularJs之$scope对象(作用域)
2017/07/20 Javascript
详解vue项目中如何引入全局sass/less变量、function、mixin
2018/06/02 Javascript
NodeJS 中Stream 的基本使用
2018/07/30 NodeJs
Vue 莹石摄像头直播视频实例代码
2018/08/31 Javascript
this.$toast() 了解一下?
2019/04/18 Javascript
vue-cli3单页构建大型项目方案
2020/04/07 Javascript
python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
2017/05/25 Python
python字典操作实例详解
2017/11/16 Python
numpy实现合并多维矩阵、list的扩展方法
2018/05/08 Python
python os.listdir按文件存取时间顺序列出目录的实例
2018/10/21 Python
对python读写文件去重、RE、set的使用详解
2018/12/11 Python
python增加图像对比度的方法
2019/07/12 Python
Python实现基于socket的udp传输与接收功能详解
2019/11/15 Python
Python中实现输入超时及如何通过变量获取变量名
2020/01/18 Python
python 写一个性能测试工具(一)
2020/10/24 Python
canvas环形倒计时组件的示例代码
2018/06/14 HTML / CSS
美国高档帽子网上商店:Hats.com
2018/08/09 全球购物
亚洲颇具影响力的男性在线购物零售商:His
2019/11/24 全球购物
美国轻奢时尚购物网站:REVOLVE(支持中文)
2020/07/18 全球购物
军训学生自我鉴定
2014/02/12 职场文书
党员批评与自我批评发言稿
2014/10/14 职场文书
推荐信范文大全
2015/03/27 职场文书
民事起诉书范本
2015/05/19 职场文书