纯Python开发的nosql数据库CodernityDB介绍和使用实例


Posted in Python onOctober 23, 2014

看看这个logo,有些像python的小蛇吧 。这次介绍的数据库codernityDB是纯python开发的。

纯Python开发的nosql数据库CodernityDB介绍和使用实例

先前用了下tinyDB这个本地数据库,也在一个api服务中用了下,一开始觉得速度有些不给力,结果一看实现的方式,真是太鸟了,居然就是json的存储,连个二进制压缩都没有。  这里介绍的CodernityDB 也是纯开发的一个小数据库。

CodernityDB是开源的,纯Python语言(没有第三方依赖),快速,多平台的NoSQL型数据库。它有可选项支持HTTP服务版本(CodernityDB-HTTP),和Python客户端库(CodernityDB-PyClient),它目标是100%兼容嵌入式的版本。

主要特点

1.Pyhon原生支持
2.多个索引
3.快(每秒可达50 000次insert操作)
4.内嵌模式(默认)和服务器模式(CodernityDB-HTTP),加上客户端库(CodernityDB-PyClient),能够100%兼容
5.轻松完成客户的存储

CodernityDB数据库操作代码实例:

Insert(simple)

 

from CodernityDB.database import Database

 

db = Database('/tmp/tut1')

db.create()

 

insertDict = {'x': 1}

print db.insert(insertDict)

 

 

 

 

Insert

 

from CodernityDB.database import Database

from CodernityDB.hash_index import HashIndex

 

class WithXIndex(HashIndex):

    def __init__(self, *args, **kwargs):

        kwargs['key_format'] = 'I'

        super(WithXIndex, self).__init__(*args, **kwargs)

 

    def make_key_value(self, data):

        a_val = data.get("x")

        if a_val is not None:

            return a_val, None

        return None

 

    def make_key(self, key):

        return key

 

db = Database('/tmp/tut2')

db.create()

 

x_ind = WithXIndex(db.path, 'x')

db.add_index(x_ind)

 

print db.insert({'x': 1})

 

 

 

Count

 

from CodernityDB.database import Database

 

db = Database('/tmp/tut1')

db.open()

 

print db.count(db.all, 'x')

 

 

Get

 

from CodernityDB.database import Database

 

db = Database('/tmp/tut2')

db.open()

 

print db.get('x', 1, with_doc=True)

 

 

Delete

 

from CodernityDB.database import Database

 

db = Database('/tmp/tut2')

db.open()

 

curr = db.get('x', 1, with_doc=True)

doc  = curr['doc']

 

db.delete(doc)

 

 

 

Update

 

from CodernityDB.database import Database

 

db = Database('/tmp/tut2')

db.create()

 

curr = db.get('x', 1, with_doc=True)

doc  = curr['doc']

 

doc['Updated'] = True

db.update(doc)
Python 相关文章推荐
python正则表达式match和search用法实例
Mar 26 Python
在Python中使用列表生成式的教程
Apr 27 Python
Python itertools模块详解
May 09 Python
Python 中Pickle库的使用详解
Feb 24 Python
django反向解析和正向解析的方式
Jun 05 Python
Python中常用的内置方法
Jan 28 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
Aug 22 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
Apr 30 Python
Python 必须了解的5种高级特征
Sep 10 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
Sep 25 Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
Sep 29 Python
Python基础之元编程知识总结
May 23 Python
Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
Oct 23 #Python
使用Python开发windows GUI程序入门实例
Oct 23 #Python
手动实现把python项目发布为exe可执行程序过程分享
Oct 23 #Python
python文件操作整理汇总
Oct 21 #Python
Python中input和raw_input的一点区别
Oct 21 #Python
Python中if __name__ == "__main__"详细解释
Oct 21 #Python
Python创建文件和追加文件内容实例
Oct 21 #Python
You might like
php Smarty模板生成html文档的方法
2010/04/12 PHP
php使用自定义函数实现汉字分割替换功能示例
2017/01/30 PHP
PHP创建自己的Composer包方法
2018/04/09 PHP
PHP中“=>
2019/03/01 PHP
laravel 实现划分admin和home 模块分组
2019/10/15 PHP
Thinkphp 框架扩展之类库扩展操作详解
2020/04/23 PHP
javascript中数组的sort()方法的使用介绍
2013/12/18 Javascript
JS获取DropDownList的value值与text值的示例代码
2014/01/07 Javascript
jQuery控制TR显示隐藏的几种方法
2014/06/18 Javascript
javascript原型模式用法实例详解
2015/06/04 Javascript
Angularjs过滤器使用详解
2016/05/25 Javascript
JavaScript 中有关数组对象的方法(详解)
2016/08/15 Javascript
jquery实现网页定位导航
2016/08/23 Javascript
AngularJS  ng-table插件设置排序
2016/09/21 Javascript
JavaScript面试题(指针、帽子和女朋友)
2016/11/23 Javascript
jQuery实现可拖拽3D万花筒旋转特效
2017/01/03 Javascript
微信小程序遇到修改数据后页面不渲染的问题解决
2017/03/09 Javascript
JS实现加载时锁定HTML页面元素的方法
2017/06/24 Javascript
解决Vue2.0中使用less给元素添加背景图片出现的问题
2018/09/03 Javascript
js中火星坐标、百度坐标、WGS84坐标转换实现方法示例
2020/03/02 Javascript
关于vue 结合原生js 解决echarts resize问题
2020/07/26 Javascript
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
Python 详解基本语法_函数_返回值
2017/01/22 Python
Python使用grequests并发发送请求的示例
2020/11/05 Python
德国健康生活方式网上商店:Landkaufhaus Mayer
2019/03/12 全球购物
工程开工庆典邀请函
2014/02/01 职场文书
党员政治学习材料
2014/05/14 职场文书
班级文化标语
2014/06/23 职场文书
计划生育工作汇报
2014/10/28 职场文书
2014年人事专员工作总结
2014/11/19 职场文书
小学教师党员承诺书
2015/04/27 职场文书
沂蒙六姐妹观后感
2015/06/08 职场文书
格列夫游记读书笔记
2015/07/01 职场文书
2015少先队大队辅导员工作总结
2015/07/24 职场文书
ObjectMapper 如何忽略字段大小写
2021/06/29 Java/Android
mysql sock 文件解析及作用讲解
2022/07/15 MySQL