快速了解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实现QQ游戏大家来找茬辅助工具
Sep 14 Python
基python实现多线程网页爬虫
Sep 06 Python
Python爬取网易云音乐上评论火爆的歌曲
Jan 19 Python
11月编程语言排行榜 Python逆袭C#上升到第4
Nov 15 Python
浅谈pycharm下找不到sqlalchemy的问题
Dec 03 Python
Python 多线程其他属性以及继承Thread类详解
Aug 28 Python
Python从入门到精通之环境搭建教程图解
Sep 26 Python
pytorch载入预训练模型后,实现训练指定层
Jan 06 Python
pymysql 插入数据 转义处理方式
Mar 02 Python
keras实现基于孪生网络的图片相似度计算方式
Jun 11 Python
python如何代码集体右移
Jul 20 Python
如何在mac版pycharm选择python版本
Jul 21 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 命令行参数详解及应用
2011/05/18 PHP
php不使用插件导出excel的简单方法
2014/03/04 PHP
详解php魔术方法(Magic methods)的使用方法
2016/02/14 PHP
纯CSS3实现质感细腻丝滑按钮
2021/03/09 HTML / CSS
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
2010/10/26 Javascript
JavaScript通过RegExp实现客户端验证处理程序
2013/05/07 Javascript
js Map List 遍历使用示例
2013/07/10 Javascript
JavaScript实现的in_array函数
2014/08/27 Javascript
JavaScript中的函数声明和函数表达式区别浅析
2015/03/27 Javascript
15款最好的Bootstrap在线编辑器
2016/08/03 Javascript
把多个JavaScript函数绑定到onload事件处理函数上的方法
2016/09/04 Javascript
谈谈Vue.js——vue-resource全攻略
2017/01/16 Javascript
微信小程序网络请求的封装与填坑之路
2017/04/01 Javascript
使用veloticy-ui生成文字动画效果
2018/02/08 Javascript
nodejs acl的用户权限管理详解
2018/03/14 NodeJs
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
js调用网络摄像头的方法
2020/12/05 Javascript
Python入门篇之函数
2014/10/20 Python
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
python获取当前时间对应unix时间戳的方法
2015/05/15 Python
Django原生sql也能使用Paginator分页的示例代码
2017/11/15 Python
numpy数组拼接简单示例
2017/12/15 Python
对numpy Array [: ,] 的取值方法详解
2018/07/02 Python
Django项目开发中cookies和session的常用操作分析
2018/07/03 Python
python爬取网易云音乐评论
2018/11/16 Python
浅谈django url请求与数据库连接池的共享问题
2019/08/29 Python
pytorch查看模型weight与grad方式
2020/06/24 Python
Python 创建守护进程的示例
2020/09/29 Python
2014年情人节活动方案
2014/02/16 职场文书
宣传部部长竞选演讲稿
2014/04/26 职场文书
平安建设工作方案
2014/06/02 职场文书
安全标语大全
2014/06/10 职场文书
外贸会计专业自荐信
2014/06/22 职场文书
2014年车间主任工作总结
2014/12/10 职场文书
导游词之晋城蟒河
2019/12/12 职场文书
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis