纯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网络编程学习笔记(三):socket网络服务器
Jun 09 Python
利用Django框架中select_related和prefetch_related函数对数据库查询优化
Apr 01 Python
Python3.6简单操作Mysql数据库
Sep 12 Python
Pandas标记删除重复记录的方法
Apr 08 Python
JavaScript中的模拟事件和自定义事件实例分析
Jul 27 Python
python3.x提取中文的正则表达式示例代码
Jul 23 Python
Python实现栈和队列的简单操作方法示例
Nov 29 Python
Python简单实现区域生长方式
Jan 16 Python
Python实现Wordcloud生成词云图的示例
Mar 30 Python
python 利用zmail库发送邮件
Sep 11 Python
使用py-spy解决scrapy卡死的问题方法
Sep 29 Python
python爬取招聘要求等信息实例
Nov 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短域名转换为实际域名函数
2011/01/17 PHP
探讨各种PHP字符串函数的总结分析
2013/06/05 PHP
php计算两个整数的最大公约数常用算法小结
2015/03/05 PHP
php编程每天必学之验证码
2016/03/03 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
JS在IE和FireFox之间常用函数的区别小结
2010/03/12 Javascript
Firefox中使用outerHTML的2种解决方法
2014/06/07 Javascript
jQuery模拟新浪微博首页滚动效果的方法
2015/03/11 Javascript
详解JavaScript中的4种类型识别方法
2015/09/14 Javascript
基于javascript实现按圆形排列DIV元素(二)
2016/12/02 Javascript
微信小程序之批量上传并压缩图片的实例代码
2018/07/05 Javascript
React通过redux-persist持久化数据存储的方法示例
2019/02/14 Javascript
基于html+css+js实现简易计算器代码实例
2020/02/28 Javascript
不刷新网页就能链接新的js文件方法总结
2020/03/01 Javascript
js 获取扫码枪输入数据的方法
2020/06/10 Javascript
vue 动态给每个页面添加title、关键词和描述的方法
2020/08/28 Javascript
Vue js with语句原理及用法解析
2020/09/03 Javascript
[01:04:39]OG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python上传package到Pypi(代码简单)
2016/02/06 Python
python爬虫爬取快手视频多线程下载功能
2018/02/28 Python
pandas表连接 索引上的合并方法
2018/06/08 Python
Python实现端口检测的方法
2018/07/24 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
解决python 上传图片限制格式问题
2019/10/30 Python
Python帮你识破双11的套路
2019/11/11 Python
python匿名函数lambda原理及实例解析
2020/02/07 Python
HTML5获取当前地理位置并在百度地图上展示的实例
2020/07/10 HTML / CSS
萨克斯第五大道的折扣店:Saks Fifth Avenue OFF 5TH
2016/08/25 全球购物
Foot Locker加拿大官网:美国知名运动产品零售商
2019/07/21 全球购物
异常和异常类的概念
2014/09/12 面试题
阳光体育活动实施方案
2014/05/25 职场文书
班级标语大全
2014/06/21 职场文书
社区综治宣传月活动总结
2014/07/02 职场文书
劳模先进事迹材料
2014/12/24 职场文书
《落花生》教学反思
2016/02/16 职场文书
关于ObjectUtils.isEmpty() 和 null 的区别
2022/02/28 Java/Android