純Python開發(fā)的nosql數(shù)據(jù)庫CodernityDB介紹和使用實例
看看這個logo,有些像python的小蛇吧 。這次介紹的數(shù)據(jù)庫codernityDB是純python開發(fā)的。
先前用了下tinyDB這個本地數(shù)據(jù)庫,也在一個api服務中用了下,一開始覺得速度有些不給力,結果一看實現(xiàn)的方式,真是太鳥了,居然就是json的存儲,連個二進制壓縮都沒有。 這里介紹的CodernityDB 也是純開發(fā)的一個小數(shù)據(jù)庫。
CodernityDB是開源的,純Python語言(沒有第三方依賴),快速,多平臺的NoSQL型數(shù)據(jù)庫。它有可選項支持HTTP服務版本(CodernityDB-HTTP),和Python客戶端庫(CodernityDB-PyClient),它目標是100%兼容嵌入式的版本。
主要特點
1.Pyhon原生支持
2.多個索引
3.快(每秒可達50 000次insert操作)
4.內嵌模式(默認)和服務器模式(CodernityDB-HTTP),加上客戶端庫(CodernityDB-PyClient),能夠100%兼容
5.輕松完成客戶的存儲
CodernityDB數(shù)據(jù)庫操作代碼實例:
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編程時利用wxPython來支持多線程的方法
這篇文章主要介紹了Python編程時利用wxPython來支持多線程的方法,本文主要以開發(fā)GUI程序時做線程通訊作為一個示例來講解,需要的朋友可以參考下2015-04-04python使用writerows寫csv文件產(chǎn)生多余空行的處理方法
這篇文章主要介紹了python使用writerows寫csv文件產(chǎn)生多余空行的處理方法,需要的朋友可以參考下2019-08-08詳解pyqt中解決國際化tr()函數(shù)不起作用的問題
本文主要介紹了pyqt中解決國際化tr()函數(shù)不起作用的問題,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02Python 搭建Web站點之Web服務器網(wǎng)關接口
本文是Python 搭建Web站點系列文章的第二篇,接上文,主要給大家來講述Web服務器網(wǎng)關接口WSGI的相關資料,非常詳細,有需要的小伙伴可以參考下2016-11-11