HelloGitHub icon indicating copy to clipboard operation
HelloGitHub copied to clipboard

FlaxKV:Python高性能磁盘字典,简单易用

Open phymathics opened this issue 1 year ago • 3 comments

推荐项目

  • 项目地址:https://github.com/KenyonY/flaxkv
  • 类别:Python

  • 项目标题:FlaxKV:Python高性能磁盘字典,简单易用

  • 项目描述:flaxkv 提供了一个非常类似字典的接口,用于与高性能键值数据库进行交互。 你可以直接将它当成python字典来使用而不必担心在任何时候操作数据库时会阻塞你的用户进程。

  • 亮点:

    • 保持最新,永不阻塞:它被设计的初衷便是不让任何写入操作阻塞用户进程,同时用户永远可以读取到最新写入的数据。

    • 易于使用:与数据库交互,就像使用 Python 字典一样!你甚至不用关心它的资源释放

    • 缓冲写入:数据将被缓冲写入及计划写入数据库,减少数据库频繁写入的开销。

    • 高性能数据库后端: 使用高性能键值数据库 LevelDB 作为默认后端。

    • 原子操作:确保写入操作是原子的,保证数据完整性。

    • 线程安全:仅使用必要的锁来确保安全的并发访问同时又能兼顾性能。

  • 示例代码:

# 这段代码描述了 flaxkv 字典数据库的写入与读取。
from flaxkv import FlaxKV
import numpy as np
import pandas as pd

db = FlaxKV('test_db')
db['a dict'] = {'a': 1, 'b': [1, 2, 3]}
db['numpy array'] = np.random.randn(100, 100)
db['df'] = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})

print(db['numpy array'])
print(db['df'])
  • Benchmark 截图 img

适用场景

  • 键-值型结构: 适用于保存简单的键值结构数据
  • 高频写入: 适合需要高频插入/更新数据的场景
  • 机器学习: 适用于保存机器学习中的各种嵌入向量、图像、文本和其它键-值结构的大型数据集。

phymathics avatar Jan 15 '24 10:01 phymathics

@phymathics 建议给出使用场景,方便用户了解

521xueweihan avatar Jan 24 '24 08:01 521xueweihan

@phymathics 建议给出使用场景,方便用户了解

已更新适用场景

phymathics avatar Jan 25 '24 09:01 phymathics

https://github.com/521xueweihan/HelloGitHub/issues/2758 要不要联动一波, 刚写了一个GUI工具

Hu-Wentao avatar May 31 '24 15:05 Hu-Wentao