laky64/jdb

此包已被废弃,不再维护。没有建议的替代包。

基于json文本平文的简单数据库

维护者

详细信息

github.com/Laky-64/JDB

源代码

问题

安装: 16

依赖: 0

建议者: 0

安全: 0

星标: 8

关注者: 3

分支: 2

公开问题: 0

类型:项目

3.3-stable 2020-10-20 22:45 UTC

This package is auto-updated.

Last update: 2023-05-21 16:33:57 UTC


README

JDB是一个基于json文本平文且具有加密功能的非常快速并行数据库。

JDB 2.3-stable版本仍然可用,但已过时。

Laky64创建的库

JDB 基准测试

PHP Python 模式 线程模式
单线程 15ms 37ms 顺序 单线程
双线程 47ms 85ms 异步 多线程
四线程 79ms 149ms 异步 多线程
八线程 143ms 133ms 异步 多线程
十二线程 207ms 402ms 异步 多线程

JDB 结构

以下是JDB数据库的结构

JDB 核心结构
数据库 密码
database1 password1
database2 password2
database3 password3
数据库结构
主键 主键类型
table1 primary_key1 primary_key_type1
table2 primary_key2 primary_key_type2
table3 primary_key3 primary_key_type3
表结构
COLUMN1 COLUMN2 COLUMN3
ROW1 value1 value2 value3
ROW2 value1 value2 value3
ROW3 value1 value2 value3

JDB 核心线程

在JDB核心中,有不同类型的线程,每种线程都有不同的任务,如下所示

  • 控制器单元线程 根据最空闲的一个将工作负载分配给各个操作线程
  • I/O线程 每500ms从RAM数据库执行一次备份到磁盘
  • 操作线程 执行计算或查询操作,通常启动多个这些线程

入门

现在支持异步多线程,支持Windows环境和Python客户端!

首先创建数据库文件夹,然后在数据库文件夹中创建一个以您想赋予的表名命名的文件夹,在其中插入您想要的字段

使用composer安装

使用json文件Composer

{
    ...
    "require": {
        "laky64/jdb": "*"
    }
}

使用命令行Composer

- composer require laky64/jdb

警告!

仔细阅读此文档,以免导致JDB出现故障

JDB 核心

需求

  • PHP > 7.4
  • PHP OpenSSL
  • PHP Memcache
  • Memcached 服务器
  • AmpPHP

可用的线程类型

  • 双线程 1 I/O 线程,1 控制单元和 2 操作线程(非常快但未针对多个连接进行优化)
  • 四线程 1 I/O 线程,1 控制单元和 4 操作线程(快速且针对中等数量的连接进行了优化)
  • 八线程 1 I/O 线程,1 控制单元和 8 操作线程(较慢但针对高数量的连接进行了优化)
  • 十二线程 1 I/O 线程,1 控制单元和 12 操作线程(非常慢但针对极高数量的连接进行了优化)

为本地 JDB 服务器创建运行器

首先需要在不停止的情况下运行一个 Memcached 服务器,然后创建一个 php 文件来运行 JDB 核心(建议用于服务器)

header('Content-Type: text/plain'); //For make readable JDBC Core results
ini_set('memory_limit', '2048M'); //For avoid a memory overload
use laky64\database\JDB_CORE;
include 'vendor/autoload.php';
new JDB_CORE(JDB_CORE::NUM_THREAD, 'database_folder', 'ip_memcached_server', 'port_memcached_server');

可用的客户端

贡献

欢迎提交 pull request。对于重大更改,请先打开一个问题以讨论您希望更改的内容。

请确保根据需要更新测试。

许可证

MIT