快速了解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中的数据类型
May 05 Python
详解Python中映射类型(字典)操作符的概念和使用
Aug 19 Python
常见的python正则用法实例讲解
Jun 21 Python
python 专题九 Mysql数据库编程基础知识
Mar 16 Python
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
Jul 24 Python
django进阶之cookie和session的使用示例
Aug 17 Python
pycharm中成功运行图片的配置教程
Oct 28 Python
python实现简单多人聊天室
Dec 11 Python
python 移动图片到另外一个文件夹的实例
Jan 10 Python
Python3.6+Django2.0以上 xadmin站点的配置和使用教程图解
Jun 04 Python
在win64上使用bypy进行百度网盘文件上传功能
Jan 02 Python
如何创建一个Flask项目并进行简单配置
Nov 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 array_push 数组函数
2009/12/26 PHP
php/js获取客户端mac地址的实现代码
2013/07/08 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
2014/04/09 PHP
3Z版基于jquery的图片复选框(asp.net+jquery)
2010/04/12 Javascript
javascript中创建对象的三种常用方法
2010/12/30 Javascript
Nodejs使用mysql模块之获得更新和删除影响的行数的方法
2014/03/18 NodeJs
JavaScript DOM事件(笔记)
2015/04/08 Javascript
JavaScript中的Math.LOG2E属性使用详解
2015/06/14 Javascript
浅谈JavaScript中的对象及Promise对象的实现
2015/11/15 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
分析JS中this引发的bug
2017/12/12 Javascript
Node.js操作系统OS模块用法分析
2019/01/04 Javascript
JS实现电话号码的字母组合算法示例
2019/02/26 Javascript
五分钟搞懂Vuex实用知识(小结)
2019/08/12 Javascript
Vuex modules模式下mapState/mapMutations的操作实例
2019/10/17 Javascript
Python导入oracle数据的方法
2015/07/10 Python
Python使用Redis实现作业调度系统(超简单)
2016/03/22 Python
Python利用flask sqlalchemy实现分页效果
2020/08/02 Python
python3.4下django集成使用xadmin后台的方法
2017/08/15 Python
Django中的CBV和FBV示例介绍
2018/02/25 Python
python实现Flappy Bird源码
2018/12/24 Python
Python发送手机动态验证码代码实例
2020/02/28 Python
30行Python代码实现高分辨率图像导航的方法
2020/05/22 Python
Django数据库迁移常见使用方法
2020/11/12 Python
使用CSS3实现input多选框自定义样式的方法示例
2019/07/19 HTML / CSS
伦敦最著名的老字号百货公司:Selfridges(塞尔福里奇百货)
2016/07/25 全球购物
PREMIUM-MALL法国:行李、箱包及配件在线
2019/05/30 全球购物
c++工程师面试问题
2013/08/04 面试题
师范应届毕业生自荐信
2013/11/18 职场文书
村党的群众路线教育实践活动工作总结
2014/10/25 职场文书
毛主席纪念堂观后感
2015/06/17 职场文书
十二月早安励志心语大全
2019/12/03 职场文书
Java练习之潜艇小游戏的实现
2022/03/16 Java/Android
代码复现python目标检测yolo3详解预测
2022/05/06 Python
Docker与K8s关系介绍不会Docker也可以使用K8s
2022/06/25 Servers