- 嵌入式的库,可方便直接pip安装,不需要单独外面部署
- 基于dill的pickle,可以方便的将python对象存储
- 三个嵌入式数据库读写对比,看起来差别并不大,实际上都是本地读写文件,不做索要
- NB增加了数据库定长设置和时序数据存储回放,,NB默认是dill的pickle,可以存储函数。这里只展示定长存储和函数存储
In [2]:
from dill import dumps,loads
from unqlite import UnQLite
udb = UnQLite('utmp.db')
from vedis import Vedis
vdb=Vedis('vtmp.db')
from deva import *
ndb = NB('ntmp.db')
In [3]:
# 数据准备
df = NB('naja')['basic_df']
df.describe()
Out[3]:
In [4]:
%%timeit
vdb['a']=0
vdb['df']=dumps(df)
In [5]:
%%timeit
ndb['a']=0
ndb['df']=df
In [6]:
%%timeit
udb['a']=0
udb['df']=dumps(df)
In [7]:
%%timeit
a = vdb['df']|loads@P
In [8]:
%%timeit
b = udb['df']|loads@P
In [9]:
%%timeit
c = ndb['df']
In [10]:
ldb=DBStream('test',maxsize=10,fname='/tmp/ldb')
for i in range(100):
ldb[i]=1
ldb|len
Out[10]:
In [11]:
ldb.db.popitem()
ldb|len
Out[11]:
In [12]:
foo = lambda x:x**2
ldb['foo']=foo
ldb['foo'](3)
Out[12]: