ZoneTree: 高性能ACID兼容的.NET有序键值数据库

安装

Install-Package ZoneTree

简单示例

using var zoneTree = new ZoneTreeFactory<int, string>()
   .OpenOrCreate();
zoneTree.Upsert(39, "Hello Zone Tree");

配置示例

// 设置数据库的存储路径
var dataPath = "data/mydatabase";

// 使用 using 语句确保 ZoneTree 对象在使用完毕后能够正确关闭
using var zoneTree = new ZoneTreeFactory<int, string>()
    // 设置键的比较器
    .SetComparer(new Int32ComparerAscending())
    // 设置数据库文件的存储目录
    .SetDataDirectory(dataPath)
    // 设置键的序列化器
    .SetKeySerializer(new Int32Serializer())
    // 设置值的序列化器
    .SetValueSerializer(new Utf8StringSerializer())
    // 打开或创建数据库
    .OpenOrCreate();

// 在数据库中插入或更新键值对,操作是原子的(线程安全的),但是只针对单个可变段
zoneTree.Upsert(39, "Hello Zone Tree!");

// 尝试在所有段上执行原子添加或更新操作
// 如果键存在,则使用提供的函数更新值
// 这里的函数将字符串 "a" 与 "b" 拼接
zoneTree.TryAtomicAddOrUpdate(39, "a", 
    bool (ref string x) => 
    {
        x += "b"; // 将 "b" 添加到现有的字符串变量 x 的末尾
        return true; // 返回 true 以确认更新
    });
posted @ 2024-08-22 08:24  wzwyc  阅读(57)  评论(0)    收藏  举报