纯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常见数据结构详解
Jul 24 Python
python操作gmail实例
Jan 14 Python
python实现批量监控网站
Sep 09 Python
sublime text 3配置使用python操作方法
Jun 11 Python
基于Python os模块常用命令介绍
Nov 03 Python
python实现字符串加密成纯数字
Mar 19 Python
python 三元运算符使用解析
Sep 16 Python
基于Python实现大文件分割和命名脚本过程解析
Sep 29 Python
python脚本实现音频m4a格式转成MP3格式的实例代码
Oct 09 Python
浅析Python迭代器的高级用法
Jul 16 Python
python 实现两个变量值进行交换的n种操作
Jun 02 Python
python标准库ElementTree处理xml
May 20 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通用分页类page.php[仿google分页]
2008/08/31 PHP
详解php中反射的应用
2016/03/15 PHP
JavaScript中json对象和string对象之间相互转化
2012/12/26 Javascript
javascript轻松实现当鼠标移开时已弹出子菜单自动消失
2013/12/29 Javascript
利用javascript实现全部删或清空所选的操作
2014/05/27 Javascript
浅析JavaScript中的事件机制
2015/06/04 Javascript
浅谈jQuery this和$(this)的区别及获取$(this)子元素对象的方法
2016/11/29 Javascript
简单实现js浮动框
2016/12/13 Javascript
vue中使用cropperjs的方法
2018/03/01 Javascript
Vue开发之封装分页组件与使用示例
2019/04/25 Javascript
layui实现鼠标移动到单元格上显示数据的方法
2019/09/11 Javascript
Javascript操作select控件代码实例
2020/02/14 Javascript
解决VueCil代理本地proxytable无效报错404的问题
2020/11/07 Javascript
微信小程序实现点赞业务
2021/02/10 Javascript
[47:08]OG vs INfamous 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
[原创]windows下Anaconda的安装与配置正解(Anaconda入门教程)
2018/04/05 Python
python写入已存在的excel数据实例
2018/05/03 Python
python内置数据类型之列表操作
2018/11/12 Python
如何快速理解python的垃圾回收机制
2020/09/01 Python
python飞机大战游戏实例讲解
2020/12/04 Python
html5 postMessage前端跨域并前端监听的方法示例
2018/11/01 HTML / CSS
送给他或她的礼物:FUN.com
2018/08/17 全球购物
Perfume’s Club澳大利亚官网:西班牙领先的在线美容店
2021/02/01 全球购物
将一个数的从第5位开始的7个数取出,其余位置0
2016/05/26 面试题
如何利用cmp命令比较文件
2016/04/11 面试题
顶岗实习计划书
2014/01/10 职场文书
社区工作者思想汇报
2014/01/13 职场文书
幼儿园秋游感想
2014/03/12 职场文书
项目合作意向书模板
2014/07/29 职场文书
2014年共青团工作总结
2014/12/10 职场文书
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android
详解nginx进程锁的实现
2021/06/14 Servers
Qt自定义Plot实现曲线绘制的详细过程
2021/11/02 Python
Python爬虫 简单介绍一下Xpath及使用
2022/04/26 Python
MySQL详解进行JDBC编程与增删改查方法
2022/06/16 MySQL
GO中sync包自由控制并发示例详解
2022/08/05 Golang