快速了解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 logging模块学习笔记
May 24 Python
Python实现向QQ群成员自动发邮件的方法
Nov 19 Python
Python使用Scrapy爬取妹子图
May 28 Python
python协程用法实例分析
Jun 04 Python
pycharm debug功能实现跳到循环末尾的方法
Nov 29 Python
用Python解决x的n次方问题
Feb 08 Python
python命令行参数用法实例分析
Jun 25 Python
Python+selenium点击网页上指定坐标的实例
Jul 05 Python
如何基于Python批量下载音乐
Nov 11 Python
python如何使用jt400.jar包代码实例
Dec 20 Python
python golang中grpc 使用示例代码详解
Jun 03 Python
健身房被搭讪?用python写了个小米计时器助人为乐
Jun 08 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安装扩展mcrypt以及相关依赖项(PHP安装PECL扩展的方法)
2013/07/05 PHP
Yii2实现让关联字段支持搜索功能的方法
2016/08/10 PHP
PHP使用mongoclient简单操作mongodb数据库示例
2019/02/08 PHP
编写兼容IE和FireFox的脚本
2009/05/18 Javascript
JS获取图片实际宽高及根据图片大小进行自适应
2013/08/11 Javascript
JavaScript模仿Pinterest实现图片预加载功能
2016/10/25 Javascript
JS实现点击Radio动态更新table数据
2017/07/18 Javascript
Vue头像处理方案小结
2018/07/26 Javascript
详解原生JS回到顶部
2019/03/25 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
2020/02/11 Javascript
node.js如何根据URL返回指定的图片详解
2020/10/21 Javascript
Python3里的super()和__class__使用介绍
2015/04/23 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
2017/10/11 Python
windows下 兼容Python2和Python3的解决方法
2018/12/05 Python
python实现三次样条插值
2018/12/17 Python
使用Python的datetime库处理时间(RPA流程)
2019/11/24 Python
pytorch 实现打印模型的参数值
2019/12/30 Python
基于Tensorflow批量数据的输入实现方式
2020/02/05 Python
tensorflow模型转ncnn的操作方式
2020/05/25 Python
python实现画图工具
2020/08/27 Python
Edwaybuy西班牙:小米在线商店
2019/12/04 全球购物
Roxy俄罗斯官方网站:冲浪和滑雪板的一切
2020/06/20 全球购物
专业毕业生个性的自我评价
2013/10/03 职场文书
汽车维修与检测专业应届生求职信
2013/11/12 职场文书
行政专员工作职责
2013/12/22 职场文书
医院门卫岗位职责
2013/12/30 职场文书
工程造价专业大学生职业生涯规划书
2014/01/18 职场文书
经典而简洁的婚礼主持词
2014/03/13 职场文书
《他得的红圈圈最多》教学反思
2014/04/24 职场文书
高二学生评语大全
2014/04/25 职场文书
公司承诺书怎么写
2014/05/24 职场文书
工商管理专业毕业生求职信
2014/05/26 职场文书
安全标语大全
2014/06/10 职场文书
原告代理词范文
2015/05/25 职场文书
Java如何实现树的同构?
2021/06/22 Java/Android
SpringRetry重试框架的具体使用
2021/07/25 Java/Android