好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Google NoSql LevelDB .net 移植版

Google NoSql LevelDB .net 移植版

给C# .NET 的兄弟们做点小贡献 - NoSql LevelDB .net 移植版 普通PC 100万条数据插入不超过4秒

给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() +  "  毫秒  "  );


        }
    }
} 

版权所有: 云寻觅开发团队

 

 

 

标签:  云寻觅 ,  nosql ,  leveldb ,  分布式KV存储

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于Google NoSql LevelDB .net 移植版的详细内容...

  阅读:80次