快速了解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学习资料
Feb 08 Python
python之yield表达式学习
Sep 02 Python
python字符串连接的N种方式总结
Sep 17 Python
跟老齐学Python之玩转字符串(2)更新篇
Sep 28 Python
使用Python读写文本文件及编写简单的文本编辑器
Mar 11 Python
python基于pyDes库实现des加密的方法
Apr 29 Python
pyqt5之将textBrowser的内容写入txt文档的方法
Jun 21 Python
python3.6+selenium实现操作Frame中的页面元素
Jul 16 Python
Python面向对象封装操作案例详解 II
Jan 02 Python
Python log模块logging记录打印用法解析
Jan 20 Python
python 双循环遍历list 变量判断代码
May 04 Python
jupyter notebook的安装与使用详解
May 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和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
2011/07/03 PHP
PHP.ini安全配置检测工具pcc简单介绍
2015/07/02 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
多浏览器兼容的获取元素和鼠标的位置的js代码
2009/12/15 Javascript
javascript复制对象使用说明
2011/06/28 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
2013/12/12 Javascript
JavaScript将数据转换成整数的方法
2014/01/04 Javascript
js中实现多态采用和继承类似的方法
2014/08/22 Javascript
js点击选择文本的方法
2015/02/09 Javascript
jquery模拟alert的弹窗插件
2015/07/31 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
2016/06/02 Javascript
jQuery插入节点和移动节点用法示例(insertAfter、insertBefore方法)
2016/09/08 Javascript
AngularJs验证重复密码的方法(两种)
2016/11/25 Javascript
ES6新特性三: Generator(生成器)函数详解
2017/04/21 Javascript
JS+WCF实现进度条实时监测数据加载量的方法详解
2017/12/19 Javascript
Three.js实现3D机房效果
2018/12/30 Javascript
详解Vue中watch对象内属性的方法
2019/02/01 Javascript
Vue函数式组件-你值得拥有
2019/05/09 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
2019/12/11 Javascript
javascript设计模式 ? 桥接模式原理与应用实例分析
2020/04/13 Javascript
Python新手实现2048小游戏
2015/03/31 Python
python画出三角形外接圆和内切圆的方法
2018/01/25 Python
Pycharm设置utf-8自动显示方法
2019/01/17 Python
Python自定义函数计算给定日期是该年第几天的方法示例
2019/05/30 Python
python中update的基本使用方法详解
2019/07/17 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
2019/09/06 Python
python3-flask-3将信息写入日志的实操方法
2019/11/12 Python
Python+opencv+pyaudio实现带声音屏幕录制
2019/12/23 Python
用C#语言写出与SQLSERVER访问时的具体过程
2013/04/16 面试题
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
2014/07/27 面试题
CAD制图设计师自荐信
2014/01/29 职场文书
销售内勤岗位职责
2014/04/15 职场文书
爱心捐助活动总结
2015/05/09 职场文书
高考满分作文赏析(2篇)
2019/08/12 职场文书
Python selenium的这三种等待方式一定要会!
2021/06/10 Python
25张裸眼3D图片,带你重温童年的记忆,感受3D的魅力
2022/02/06 杂记