json内存级非关系数据库
介绍
`jsonDB2`是一个基于内存的键值对数据库(非关系型数据库)
开发初衷:实现个人tornado项目中内存session存储功能(不想引入redis等非关系型数据库)
项目地址: https://github.com/spdir/jsonDB2
安装
$ pip install jdb2
或者
$ git clone https://github.com/spdir/jsonDB2.git
$ cd jsonDB2
$ python setup.py install
使用
- 初始化实例
import jdb2
#初始化一个空的DB
n = jdb2.NoSql()
#将原来的数据导入到数据库,并配置自动持久化
n = jdb2.NoSql(dump=True, nosqlFile='filePath', dumpTime=10)
# dump: 启动持久化,并导入已有数据, 默认: False
# nosqlFile: 持久化文件路径
# dumpTime: 持久化时间间隔(单位: 秒), 默认: 30
#创建一个数据库, 如果数据库存在此库,则返回存在库的对象
d1 = n.createDB('d1')
- 操作使用
>>> import jdb2
>>> n = jdb2.NoSql() #初始化实例对象
>>> d1 = n.createDB('d1') #创建一个DB
>>> t1 = d1.createTable('t1') #创建一张表
>>> d1.setValue('a','b') #db设置一个参数
>>> d1.getValue('a') #db获取一个参数
'b'
>>> t1.setValue(1,2) #tb设置一个参数
>>> t1.getValue(1) #tb获取一个参数
2
>>> d1.getValues() #获取所有的value
[{1: 2}, 'b']
>>> d1.getKeys() #获取所有的key
['t1', 'a']
>>> d1.getItems() #获取所有的键值对, 返回list
[('t1', {1: 2}), ('a', 'b')]
>>> d1.dropKey('a') #删除一个键或者一张表
>>> d1.setValue('c','d')
>>> d1.clearKey('c') #清除一个key的内容
>>> d1.getItems()
[('t1', {1: 2}), ('c', None)]
>>> d1.clearKey('t1') #清除一张表的内容
>>> d1.getItems()
[('t1', {}), ('c', None)]
>>> t1.lenTable() #获取数据库或表长度
1
>>> d1.allData() #获取所有的表或库的所有键值对,返回dict
{'t1': {}, 'c': None}
json内存级非关系数据库的更多相关文章
- Oracle之非关系数据库
什么是非关系型数据库? 非关系型数据库它的全称是Not Only SQL(简称 NoSQL数据库)是用于存储和检索数据的非关系数据库系统.在当今世界,我们不应该只以没有预定义固定模式的表格式存储所有数 ...
- MongoDB是一个介于关系数据库和非关系数据库之间的产品
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型.M ...
- NoSQL数据库探讨之一 - 为什么要用非关系数据库?
随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速.而传统的关系数据库在应付 web2.0网站,特别是超大规模和高并发的SNS类型的web2 ...
- 非关系数据库一Memcached
第三十四课 非关系数据库一Memcached 目录 一.nosql介绍 二.memrcached介绍 三.安装memcached 四.查看memcachedq状态 五.memcached命令行 六.m ...
- Windows内核编程之:分页内存与非分页内存 #define PAGEDCODE code_seg("PAGE") (转)
原文链接:http://blog.chinaunix.net/uid-24504987-id-161192.html Windows规定有些虚拟内存可以交换到文件中,这类内存被称为分页内存 有些虚拟内 ...
- 干货:JVM 堆内存和非堆内存
堆和非堆内存 按照官方的说法:"Java 虚拟机具有一个堆(Heap),堆是运行时数据区域,所有类实例和数组的内存均从此处分配.堆是在 Java 虚拟机启动时创建的."" ...
- 性能跃升50%!解密自主研发的金融级分布式关系数据库OceanBase 2.0
小蚂蚁说: 相信大家对蚂蚁金服自主研发的金融级分布式关系数据库OceanBase的故事不再陌生了.在刚刚过去的2018年天猫双11中,成交额2135亿再次创造了新纪录,而支撑今年双11的支付宝核心链路 ...
- JVM 堆内存和非堆内存
转载自:http://www.importnew.com/27645.html 堆和非堆内存 按照官方的说法:“Java 虚拟机具有一个堆(Heap),堆是运行时数据区域,所有类实例和数组的内存均从此 ...
- Windows内核编程之:分页内存与非分页内存
Windows规定有些虚拟内存可以交换到文件中,这类内存被称为分页内存 有些虚拟内存 永远不会交换到文件中,这些内存叫非分页内存 #define PAGEDCODE code_seg(“PAGE”); ...
随机推荐
- 快速使用CSS Grid布局,实现响应式设计
常用Grid布局属性介绍 下面从一个简单Grid布局例子说起. CSS Grid 布局由两个核心组成部分是 wrapper(父元素)和 items(子元素). wrapper 是实际的 grid(网格 ...
- Dynamics 365的审核日志分区删除超时报错怎么办?
摘要: 本人微信公众号:微软动态CRM专家罗勇 ,回复296或者20190112可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me ...
- word表格转html后去除冗余代码
word可以另存为html文件,通过这个功能,可以快速实现网页展示word内容,特别是表格的编辑,它包含tr.td.th.rowspan.colspan等内容,直接写比较繁琐. 但word转换过来的h ...
- Android 运行报错 Unknown failure (at android.os.Binder.execTransact(Binder.java:681)) Error while Installing APKs 解决办法
今天,我用手机测试的时候出现了这个错误 我网站查找了一会资料, 在运行的时候出现提示大致意思:卸载删除已存在应用程序,是否卸载现有应用程序,点击ok就会出现如下错误 原应用程序也没有卸载,然后自己手动 ...
- ADB和Fastboot最新版的谷歌官方下载链接
ADB和Fastboot for Windows https://dl.google.com/android/repository/platform-tools-latest-windows.zip ...
- 会话固定攻击 - yxcms session固定漏洞
目录 会话固定攻击 e.g. yxcms session固定攻击 分析 了解更多 会话固定攻击 Session fixation attack(会话固定攻击)是利用服务器的session不变机制,借他 ...
- Python+ITchart实现微信机器人对指定的朋友和群自动回复
这里我主要用了3个机器人,可以切换. 1.图灵机器人 (傻的不行,一直在问别人问题,没有限制) http://www.tuling123.com 2.showApi上的图灵机器人 (感觉最聪明,可以 ...
- jquery获取url的方式
(function ($) { $.getUrlParam = function (name) { var reg = new RegExp("(^|&)" + name ...
- 【原】Java学习笔记017 - 面向对象
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 继承关系中的pri ...
- 文件操作命令(move)
move命令: // 描述: 将一个或多个文件从一个目录移动到另一个目录. // 语法: move [{/y | /-y}] [<Source>] [<Target>] // ...