给C# .NET 兄弟们做点小贡献 - NoSql LevelDB .net 移植版 普通PC 100万条数据插入不超过4秒
支持多线程,并发安全
解决方案下载地址:
http://pan.baidu.com/share/link?shareid=508379&uk=201606611
有任何疑问请联系:QQ交流群 204725117
LevelDB 是一个由Google公司所研发的键/值对(Key/Value Pair)嵌入式数据库管理系统编程库,[1] 以开源的BSD许可证发布。
高性能,简单的体系结构:只支持API调用,不支持SQL语言
自由软件和开放源代码软件
数据支持被Snappy函式库压缩,以减少Disk I/O提升效能
目前仅支持 Linux 完全由C++开发,支持TB级数据,本项目将其移植到windows 及 .net 平台上!
调用代码范例:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using WebSystem.Framework.DAO.LevelDB; namespace LevelDbDemo { class Program { static DB Database { get; set; } static string DatabasePath { get; set; } static void Main(string[] args) { var tempPath = Path.GetTempPath(); var randName = Path.GetRandomFileName(); DatabasePath = Path.Combine(tempPath, randName); Cache c = new Cache(100 * 1024 * 1024); var options = new Options() { BlockCache = c, CreateIfMissing = true, }; Database = new DB(options, "mylevel.db"); //开始时间 TimeSpan runTime = new TimeSpan(DateTime.Now.Ticks); //循环插入 100万 k,v for (int i = 0; i < 1000000; i++) { Database.Put(i.ToString(), i.ToString() + "A"); } //迭代取所有数据 //var entries = new List<KeyValuePair<string, string>>(); //try //{ // foreach (var entry in Database) // { // entries.Add(entry); // } //} //catch { } //取某一个key 的 值 string value = Database.Get("123455"); //大约 0.00X 几秒 //结束时间 TimeSpan timeNow = new TimeSpan(DateTime.Now.Ticks); //时间间隔 TimeSpan ts = timeNow.Subtract(runTime).Duration(); Console.WriteLine(" 用时:" + ts.TotalSeconds.ToString() + "秒 " + ts.TotalMilliseconds.ToString() + "毫秒"); } } }
版权所有:云寻觅开发团队