0

0

Jinbase – 多模型事务嵌入式数据库

DDD

DDD

发布时间:2024-12-01 11:45:01

|

388人浏览过

|

来源于dev.to

转载

jinbase – 多模型事务嵌入式数据库

嗨,开发者!

我是 Alex,一名技术爱好者。我很高兴向您展示 Jinbase,我的多模型事务嵌入式数据库。

大约一年前,我介绍了 Paradict,这是我对多格式流序列化的看法。鉴于其可读性,Paradict 文本格式实际上是配置文件的一种有趣的数据格式。但是使用 Paradict 来管理配置文件最终会使其编程界面变得混乱,并使那些仍然可以选择专用于配置文件的替代库(TOML、INI 文件等)的用户感到困惑。所以我使用 Paradict 作为 KvF(键值文件格式)的依赖项,这是我的一个新项目,专注于带有部分的配置文件。

凭借其紧凑的二进制格式,我认为 Paradict 将成为一个新项目的有效依赖项,该项目将依赖 I/O 函数(例如 Open、Read、Write、Seek、Tell 和 Close)来实现简约但可靠的功能持久性解决方案。但那是在我了解到“文件很难”之前。 SQLite 及其事务、BLOB 数据类型和 BLOB 的增量 I/O 似乎是我的新项目的正确选择。

Jinbase 最初只是一个键值存储,最终成为一个多模型嵌入式数据库,突破了我们通常使用 SQLite 所做的事情的界限。当我意识到键值存储不太适合为每个新记录自动生成唯一标识符 (UID) 的情况时,第一次转换到第二个数据模型(仓库),从而为用户节省了时间提供可能意外发生冲突并因此覆盖现有记录的标识符的负担。之后,我实现了一种搜索功能,该功能接受仓库存储的 UID 范围、仓库和键值存储的时间跨度(记录自动带有时间戳)以及键值存储中字符串和整数键的 GLOB 模式和数字范围.

队列和堆栈数据模型是作为必须按特定顺序使用记录的用例的解决方案而出现的。典型的记录将在单个事务单元中从数据库中检索和删除。

由于使用SQLite作为存储引擎,Jinbase事实上支持关系模型。为了方便起见,与 Jinbase 内部相关的所有表都以 jinbase_ 为前缀,这使得 Jinbase 成为打开旧版 SQLite 文件以添加与临时关系模型安全共存的新数据模型的有用工具。

SmartB2B行业电子商务
SmartB2B行业电子商务

SmartB2B 是一款基于PHP、MySQL、Smarty的B2B行业电子商务网站管理系统,系统提供了供求模型、企业模型、产品模型、人才招聘模型、资讯模型等模块,适用于想在行业里取得领先地位的企业快速假设B2B网站,可以运行于Linux与Windows等多重服务器环境,安装方便,使用灵活。 系统使用当前流行的PHP语言开发,以MySQL为数据库,采用B/S架构,MVC模式开发。融入了模型化、模板

下载

所有四种主要数据模型(键值、仓库、队列、堆栈)都支持与 Paradict 兼容的数据类型,例如字典、字符串、二进制数据、整数、布尔值、日期时间等。在幕后,当用户发起写操作,Jinbase 会迭代序列化(二进制数据除外)、分块并存储数据。一条记录不仅可以批量访问,还可以有两种级别的部分访问粒度:字节级和字段级。

虽然 SQLite 的 BLOB 增量 I/O 旨在针对一行中的单个 BLOB 列,但 Jinbase 对此进行了扩展,以便对于每个记录,增量读取覆盖所有块,就好像它们是单个统一的 BLOB 一样。仅对于字典记录,Jinbase 自动创建并维护一个由指向根字段的指针组成的轻量级索引,然后允许从任意记录中提取在返回之前自动反序列化的字段内容。

Jinbase 最明显的用例是存储用户首选项、退出前保留会话数据、基于顺序的数据流处理、向其他进程公开数据、使用新数据模型升级旧版 SQLite 文件以及定制数据持久性解决方案。

Jinbase 用 Python 编写,可在 PyPI 上使用,您可以使用 README 中的示例。

让我知道您对这个项目的看法。

项目链接:https://github.com/pyrustic/jinbase

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

309

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

222

2025.10.31

mysql标识符无效错误怎么解决
mysql标识符无效错误怎么解决

mysql标识符无效错误的解决办法:1、检查标识符是否被其他表或数据库使用;2、检查标识符是否包含特殊字符;3、使用引号包裹标识符;4、使用反引号包裹标识符;5、检查MySQL的配置文件等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

183

2023.12.04

Python标识符有哪些
Python标识符有哪些

Python标识符有变量标识符、函数标识符、类标识符、模块标识符、下划线开头的标识符、双下划线开头、双下划线结尾的标识符、整型标识符、浮点型标识符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

286

2024.02.23

java标识符合集
java标识符合集

本专题整合了java标识符相关内容,想了解更多详细内容,请阅读下面的文章。

258

2025.06.11

c++标识符介绍
c++标识符介绍

本专题整合了c++标识符相关内容,阅读专题下面的文章了解更多详细内容。

124

2025.08.07

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

298

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

212

2023.09.04

Python 自然语言处理(NLP)基础与实战
Python 自然语言处理(NLP)基础与实战

本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

10

2026.01.27

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.3万人学习

Django 教程
Django 教程

共28课时 | 3.5万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号