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


        }
    }
}

版權所有:雲尋覓開發團隊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM