zoukankan      html  css  js  c++  java
  • 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

    使用

    1. 初始化实例
    import jdb2
    #初始化一个空的DB
    n = jdb2.NoSql()
    #将原来的数据导入到数据库,并配置自动持久化
    n = jdb2.NoSql(dump=True, nosqlFile='filePath', dumpTime=10)
      # dump: 启动持久化,并导入已有数据, 默认: False
      # nosqlFile: 持久化文件路径
      # dumpTime: 持久化时间间隔(单位: 秒), 默认: 30
    #创建一个数据库, 如果数据库存在此库,则返回存在库的对象
    d1 = n.createDB('d1')
    
    1. 操作使用
    >>> 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}
    

     

  • 相关阅读:
    07:常识性问题
    知识梳理
    Linux之防火墙iptables
    centos常用命令
    Centos7 内核升级及删除无用内核
    Java线程之Callable、Future
    Java线程之Timer
    Java线程之ThreadLocal
    Java线程之synchronized
    Java线程之wait()、notify()、notifyAll()
  • 原文地址:https://www.cnblogs.com/zhichaoma/p/9382937.html
Copyright © 2011-2022 走看看