zoukankan      html  css  js  c++  java
  • 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() + "毫秒");
    
    
            }
        }
    }
    复制代码

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

     
     
     
  • 相关阅读:
    BUG记录
    .Net HTTP请求的发送方式与分析
    初始token
    VS2017开发安卓应用(Xamarin)
    路由模板和路由特性
    使用signalR创建聊天室。
    C# SessionHelper
    postgres递归查询所有子部门
    centos7备份postgres
    Centos7挂载硬盘
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3062238.html
Copyright © 2011-2022 走看看