吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 969|回复: 1
收起左侧

[其他转载] JSONDBSD|json小型数据库

[复制链接]
sheng233 发表于 2023-7-22 19:50
这个已经在gitee和GitHub发送
https://gitee.com/worldly-way/jsondbsd/


JSONDBSD

JSONDBSD是一个简单的PHP类,用于操作JSON格式的数据库。

用于小型项目,对要求不高,就没有必要使用数据库

php

  1. 构造函数__construct:在初始化时,通过传入的文件名构建一个锁文件名,并调用loadData方法加载数据。loadData方法首先通过fileReadSafe方法安全地读取文件内容,并将内容解析为JSON格式的数据。如果文件内容为空或解析失败,则初始化一个空的数据数组。将加载的数据赋值给datacache两个属性。

  2. saveData方法:将数据保存到文件中。它将数据转换为JSON格式的字符串,并调用fileWriteSafe方法安全地写入文件。

  3. insert方法:向指定的表中插入数据。如果表不存在,则先创建一个空的表。然后将数据添加到表中,并更新缓存和保存数据。

  4. delete方法:从指定的表中删除符合条件的数据。首先检查表是否存在,然后使用array_filter函数将满足条件的数据筛选出来,并更新表的数据和缓存,最后保存数据。

  5. select方法:查询指定表中满足条件的数据。首先检查表是否存在,然后遍历缓存中的数据,对每一行数据都使用checkConditions方法进行条件判断,如果满足条件则将其添加到结果数组中。最后返回结果数组。

  6. update方法:更新指定表中符合条件的数据。首先检查表是否存在,然后遍历表中的每一行数据,对每一行数据都使用checkConditions方法进行条件判断,如果满足条件则更新数据。最后更新缓存和保存数据。

  7. checkConditions方法:用于判断一行数据是否满足给定的条件。它遍历条件数组中的每个字段和比较操作符,根据操作符对字段值和比较值进行比较,并根据比较结果更新result变量。最后返回result变量。

  8. fileReadSafe方法和fileWriteSafe方法:用于安全地读取和写入文件。它们使用文件锁机制(flock函数)来确保在读取或写入文件时不会被其他进程或线程干扰,来提高并发

已测试2h2g 5m 服务器  5000-10000的并发(不过缺点是数据库不能太大)

Python

JSONDBSD是一个简单的数据库管理类,使用Python编写,可以用于存储和操作JSON格式的数据。

特点

  • 轻量且易于使用
  • 数据以JSON格式存储
  • 支持基本的CRUD操作:插入、删除、查询、更新
  • 支持基于条件的查询
  • 基于文件的存储,使用文件锁确保数据一致性

使用方法

  1. 在您的Python项目中包含JSONDBSD.py文件。
  2. 创建JSONDBSD类的实例,并提供JSON数据文件的文件名。
  3. 使用insert方法插入数据。
  4. 使用delete方法删除数据。
  5. 使用select方法查询数据。
  6. 使用update方法更新数据。

原理

  1. 在初始化时,通过传入的文件名构建一个锁文件名,并调用load_data方法加载数据。load_data方法首先检查文件是否存在,如果存在则尝试读取文件内容,并将内容解析为JSON格式的数据。如果文件内容为空或解析失败,则初始化一个空的数据字典。将加载的数据赋值给data和cache两个属性。

  2. save_data方法用于将数据保存到文件中。它将数据转换为JSON格式的字符串,并将其写入文件中。

  3. insert方法用于向指定的表中插入数据。如果表不存在,则先创建一个空的表。然后将数据添加到表中,并更新缓存和保存数据。

  4. delete方法用于从指定的表中删除符合条件的数据。首先检查表是否存在,然后使用列表推导式将满足条件的数据筛选出来,并更新表的数据和缓存,最后保存数据。

  5. select方法用于查询指定表中满足条件的数据。首先检查表是否存在,然后遍历缓存中的数据,对每一行数据都使用check_conditions方法进行条件判断,如果满足条件则将其添加到结果列表中。最后返回结果列表。

  6. update方法用于更新指定表中符合条件的数据。首先检查表是否存在,然后遍历表中的每一行数据,对每一行数据都使用check_conditions方法进行条件判断,如果满足条件则更新数据。最后更新缓存和保存数据。

  7. check_conditions方法用于判断一行数据是否满足给定的条件。它遍历条件字典中的每个字段和比较操作符,根据操作符对字段值和比较值进行比较,并根据比较结果更新result变量。最后返回result变量。

示例

# 导入JSONDBSD类
from JSONDBSD import JSONDBSD

# 创建JSONDBSD对象
db = JSONDBSD('data.json')

# 插入数据
db.insert('users', {'id': 1, 'name': 'John Doe', 'age': 25})

# 查询数据
result = db.select('users', {'age': {'>': 25}})
print(result)

# 更新数据
db.update('users', {'id': {'=': 1}}, {'age': 26})

# 删除数据
db.delete('users', {'age': {'<': 30}})




发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

紫云互联 发表于 2023-7-22 23:46
只能说中看不中用。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 22:04

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表