纯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中的闭包
Aug 11 Python
使用rst2pdf实现将sphinx生成PDF
Jun 07 Python
常见的python正则用法实例讲解
Jun 21 Python
Python实现将sqlite数据库导出转成Excel(xls)表的方法
Jul 17 Python
python 限制函数调用次数的实例讲解
Apr 21 Python
基于pandas将类别属性转化为数值属性的方法
Jul 25 Python
Python一个简单的通信程序(客户端 服务器)
Mar 06 Python
python通过txt文件批量安装依赖包的实现步骤
Aug 13 Python
Python的bit_length函数来二进制的位数方法
Aug 27 Python
使用python实现哈希表、字典、集合操作
Dec 22 Python
Python @property装饰器原理解析
Jan 22 Python
Python爬虫中urllib3与urllib的区别是什么
Jul 21 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
yii实现级联下拉菜单的方法
2014/07/31 PHP
php中in_array函数用法分析
2014/11/15 PHP
php中使用key,value,current,next和prev函数遍历数组的方法
2015/03/17 PHP
PHP中Laravel 关联查询返回错误id的解决方法
2017/04/01 PHP
php+websocket 实现的聊天室功能详解
2020/05/27 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
2020/08/24 PHP
JQuery文本框高亮显示插件代码
2011/04/02 Javascript
js iframe跨域访问(同主域/非同主域)分别深入介绍
2013/01/24 Javascript
jQuery中after()方法用法实例
2014/12/25 Javascript
JavaScript+html5 canvas绘制的小人效果
2016/01/27 Javascript
使用json来定义函数,在里面可以定义多个函数的实现方法
2016/10/28 Javascript
bootstrap动态添加面包屑(breadcrumb)及其响应事件的方法
2017/05/25 Javascript
基于jquery实现多选下拉列表
2017/08/02 jQuery
JavaScript与Java正则表达式写法的区别介绍
2017/08/15 Javascript
jquery实现回车键触发事件(实例讲解)
2017/11/21 jQuery
nodejs微信开发之接入指南
2019/03/17 NodeJs
ES6 Generator函数的应用实例分析
2019/06/26 Javascript
layui数据表格实现重载数据表格功能(搜索功能)
2019/07/27 Javascript
微信小程序使用npm包的方法步骤
2019/08/13 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
jQuery实现动态向上滚动
2020/12/21 jQuery
用python的requests第三方模块抓取王者荣耀所有英雄的皮肤实例
2017/12/14 Python
python socket网络编程之粘包问题详解
2018/04/28 Python
PYTHON基础-时间日期处理小结
2018/05/05 Python
对python中执行DOS命令的3种方法总结
2018/05/12 Python
python基础学习之如何对元组各个元素进行命名详解
2018/07/12 Python
pandas分组聚合详解
2020/04/10 Python
使用matplotlib的pyplot模块绘图的实现示例
2020/07/12 Python
CSS3 三维变形实现立体方块特效源码
2016/12/15 HTML / CSS
Otel.com:折扣酒店预订
2017/08/24 全球购物
办公室文秘岗位职责
2013/11/15 职场文书
二年级学生评语大全
2014/04/23 职场文书
民主评议党员登记表自我评价
2014/10/20 职场文书
公务员个人考察材料
2014/12/23 职场文书
本科毕业论文答辩稿
2015/06/23 职场文书
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL