纯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中封装GObject模块进行图形化程序编程的教程
Apr 14 Python
python统计日志ip访问数的方法
Jul 06 Python
python读取oracle函数返回值
Jul 18 Python
Python编程之event对象的用法实例分析
Mar 23 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
May 15 Python
python使用turtle库绘制树
Jun 25 Python
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
Sep 06 Python
详解Django配置JWT认证方式
May 09 Python
Python实现在线批量美颜功能过程解析
Jun 10 Python
django 将自带的数据库sqlite3改成mysql实例
Jul 09 Python
如何基于Python和Flask编写Prometheus监控
Nov 25 Python
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
Jun 09 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 curl 获取响应的状态码的方法
2014/01/13 PHP
PHP登录环节防止sql注入的方法浅析
2014/06/30 PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
2015/05/12 PHP
详解php反序列化
2020/06/10 PHP
Javascript 生成指定范围数值随机数
2009/01/09 Javascript
JavaScript中setAttribute用法介绍
2013/07/20 Javascript
Javascript实现颜色rgb与16进制转换的方法
2015/04/18 Javascript
jQuery事件绑定on()与弹窗实现代码
2016/04/28 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
JS去掉字符串前后空格或去掉所有空格的用法
2017/03/25 Javascript
详解webpack分离css单独打包
2017/06/21 Javascript
关于Vue在ie10下空白页的debug小结
2018/05/02 Javascript
Vue框架里使用Swiper的方法示例
2018/09/20 Javascript
python 随机数生成的代码的详细分析
2011/05/15 Python
深入分析在Python模块顶层运行的代码引起的一个Bug
2014/07/04 Python
Python脚本实现代码行数统计代码分享
2015/03/10 Python
解决Python3中的中文字符编码的问题
2018/07/18 Python
Django基础三之视图函数的使用方法
2019/07/18 Python
详解Python3 pickle模块用法
2019/09/16 Python
PyQt5高级界面控件之QTableWidget的具体使用方法
2020/02/23 Python
利用python在excel中画图的实现方法
2020/03/17 Python
python 删除excel表格重复行,数据预处理操作
2020/07/06 Python
高档奢华时装在线目的地:FORWARD by elyse walker
2017/10/16 全球购物
俄罗斯领先的移动和数字设备在线商店:Svyaznoy.ru
2020/12/21 全球购物
Solaris操作系统的线程机制
2012/12/23 面试题
企业治理工作自我评价
2013/09/26 职场文书
个人应聘自我评价分享
2013/11/18 职场文书
酒店办公室文员岗位职责
2013/12/18 职场文书
软件项目开发计划书
2014/05/01 职场文书
死亡证明书样本说明
2014/10/18 职场文书
大二学生自我检讨书
2014/10/23 职场文书
小学生六年级作文之关于感恩
2019/08/16 职场文书
面试必问:圣杯布局和双飞翼布局的区别
2021/05/13 HTML / CSS
MySQL的安装与配置详细教程
2021/06/26 MySQL
Python快速实现一键抠图功能的全过程
2021/06/29 Python
基于Android10渲染Surface的创建过程
2022/08/14 Java/Android