快速了解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中的type()方法的使用
May 21 Python
python django 访问静态文件出现404或500错误
Jan 20 Python
Python 高级专用类方法的实例详解
Sep 11 Python
django限制匿名用户访问及重定向的方法实例
Feb 07 Python
基于python 二维数组及画图的实例详解
Apr 03 Python
python 自定义异常和异常捕捉的方法
Oct 18 Python
pandas 条件搜索返回列表的方法
Oct 30 Python
django解决跨域请求的问题详解
Jan 20 Python
Python获取好友地区分布及好友性别分布情况代码详解
Jul 10 Python
让Python脚本暂停执行的几种方法(小结)
Jul 11 Python
python时间日期操作方法实例小结
Feb 06 Python
pytorch 移动端部署之helloworld的使用
Oct 30 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得到某段时间区间的时间戳 php定时任务
2012/04/12 PHP
WordPress特定文章对搜索引擎隐藏或只允许搜索引擎查看
2015/12/31 PHP
PHP使用mysqli操作MySQL数据库的简单方法
2017/02/04 PHP
PHP判断是否是微信打开还是浏览器打开的方法
2019/02/27 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
2019/10/30 PHP
JQUERY dialog的用法详细解析
2013/12/19 Javascript
jQuery分别获取选中的复选框值的示例
2014/06/17 Javascript
new Date()问题在ie8下面的处理方法
2014/07/31 Javascript
理解和运用JavaScript的闭包机制
2015/08/13 Javascript
JS实现日期时间动态显示的方法
2015/12/07 Javascript
JavaScript实现多种排序算法
2016/02/24 Javascript
js控制台输出的方法(详解)
2016/11/26 Javascript
JavaScript同源策略和跨域访问实例详解
2018/04/03 Javascript
redux中间件之redux-thunk的具体使用
2018/04/17 Javascript
Node.JS在命令行中检查Chrome浏览器是否安装并打开指定网址
2019/05/21 Javascript
JS字符串与二进制的相互转化实例代码详解
2019/06/28 Javascript
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
2019/09/10 Javascript
python版简单工厂模式
2017/10/16 Python
python在每个字符后添加空格的实例
2018/05/07 Python
Python中logging实例讲解
2019/01/17 Python
flask框架单元测试原理与用法实例分析
2019/07/23 Python
Numpy的简单用法小结
2019/08/28 Python
Python实现socket非阻塞通讯功能示例
2019/11/06 Python
Python API len函数操作过程解析
2020/03/05 Python
LA MER海蓝之谜美国官网:传奇面霜
2016/08/27 全球购物
韩国演唱会订票网站:StubHub韩国
2019/01/17 全球购物
怎么可以提高数据库查询数据的速度
2014/06/28 面试题
优秀员工自荐书范文
2013/12/08 职场文书
周年庆典邀请函范文
2014/01/23 职场文书
2014年党员公开承诺书范文
2014/03/28 职场文书
政治表现评语
2014/05/04 职场文书
个人诉讼委托书范本
2014/10/17 职场文书
中学推普周活动总结
2015/05/07 职场文书
《我的长生果》教学反思
2016/02/20 职场文书
SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法
2021/06/30 SQL Server