惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
V
V2EX
WordPress大学
WordPress大学
U
Unit 42
I
InfoQ
A
About on SuperTechFans
宝玉的分享
宝玉的分享
J
Java Code Geeks
博客园 - 司徒正美
爱范儿
爱范儿
Engineering at Meta
Engineering at Meta
G
Google Developers Blog
人人都是产品经理
人人都是产品经理
小众软件
小众软件
Microsoft Security Blog
Microsoft Security Blog
L
LangChain Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Hugging Face - Blog
Hugging Face - Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
aimingoo的专栏
aimingoo的专栏
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Last Week in AI
Last Week in AI
腾讯CDC
Recent Announcements
Recent Announcements

博客园 - 灵感之源

.NET的前世今生与将来 技术人生的职场众生相 - 十多年的经验与心得 爆栈之旅 - 从接触到成为经理,从中国到澳洲 - 我这10年来的开发历程 我的软件开发生涯 (10年开发经验总结和爆栈人生) 我的回忆录-青年 爆栈三部曲:数据库开发大系技术栈 (300多技术点) Web前端开发大系概览 (前端开发技术栈) .NET技术大系概览 (迄今为止最全的.NET技术栈) 澳洲生活宝典 (兼我的2013总结) 某连锁酒店泄露数据的分析 我的回忆录 WaterfallTree(瀑布树) 详细技术分析系列 C#开源磁盘/内存缓存引擎 基于STSdb和fastJson的磁盘/内存缓存 怎样记住Integer的最大值(有趣的思维和搞笑的回答) 在ASP.NET MVC 无需Web Form和Report Viewer 预览SSRS报表解决方案 STSdb,最强纯C#开源NoSQL和虚拟文件系统 C#写的NoSQL开源项目/系统(系列) 老调重弹:年龄大了,码农何去何从
STSdb,最强纯C#开源NoSQL和虚拟文件系统 4.0 RC2 支持C/S架构
灵感之源 · 2013-06-24 · via 博客园 - 灵感之源

2013-06-24 19:03  灵感之源  阅读(5416)  评论()    收藏  举报

STSdb是什么

再来说明一下STSdb是什么:STSdb是C#写的开源嵌入式数据库和虚拟文件系统,支持实时索引,性能是同类产品的几倍到几十倍,访问官方网站

温故知新

之前发了文章《STSdb,最强纯C#开源NoSQL和虚拟文件系统》,相信大家对Waterfall-tree(瀑布树)算法还是有兴趣的。

不兼容改动

 为了提供更易容的API和更好的性能,STSdb 4.0 RC2改变了文件格式,这个改变可能会持续,直到4.0正式版。

C/S架构

在上一篇文章,提及会在4.0正式版之前加入对C/S的支持,现在在RC2已经引入。

客户端

//客户端,创建一个连接:
using (IStorageEngine engine = STSdb.FromNetwork(host, port))
{
}

服务器端

//服务器端,启动一个服务器实例
using (IStorageEngine engine = STSdb.FromFile("stsdb4.sys", "stsdb4.dat"))
{
    var server = STSdb.CreateServer(engine, port);
    server.Start();
    //服务器端已经启动,可以接受客户端请求
    server.Stop();
}

DataType类型

DataType类型用于描述非泛型的IIndex和IData数据类型

//以前的做法
XIndex<IData, IData> table = engine.OpenXIndex(typeof(Data<int>), typeof(Data<string>), "table");
//新做法
IIndex<IData, IData> table = engine.OpenXIndex(DataType.Int32, DataType.String, "table");
//以前的做法
XIndex<IData, IData> table = engine.OpenXIndex(typeof(Data<long>), typeof(Data<string, DateTime, double, double, long, string>), "table");
//新做法
DataType keyType = DataType.Int64;
DataType recordType = DataType.Slotes(
    DataType.String,
    DataType.DateTime,
    DataType.Double,
    DataType.Double,
    DataType.Int64,
    DataType.String
);
IIndex<IData, IData> table = engine.OpenXIndex(keyType, recordType, "table");

公有字段

IIndex现在支持公有字段的读写

List<T>, T[]和Dictionary

在4.0 RC2仍然不支持,但会在4.0 Final支持

下载

点击这里下载源代码