C# WinForms ve Mono GTK Console Sistem ve Servis Programlama NoSQL SQL ve XML Gibi DataSource Tipleri

RocksDb Key-Value Db

C# uygulamamızda RocksDb adında facebook tarafından geliştirilen opensource bir .net kütüphanemizden faydalanacağız. Bu pratik veritabanı çalışma mantığı olarak belirteceğimiz dizine dosyalarını oluşturuyor. Key value olarak cache gibi kullanılabilecek kadar hızlı sorgular yapılabiliyor. İlk defa aranan değeri diskten ararken tekrar çağrıldığında önbellekten getirerek performans sağlıyor. İstatistikleri ve logları kendisi tutuyor. Örnek koda geçecek olursak;

using RocksDbSharp;
using System;
using System.IO;
class Program
    {
        static string temp = Path.GetTempPath();
        static string DBPath = Environment.ExpandEnvironmentVariables(Path.Combine(temp, "rocksdb_simple_example"));
        static DbOptions options = new DbOptions()
            .SetCreateIfMissing(true)
            .IncreaseParallelism(10)
            .PrepareForBulkLoad()
            .SetAllowConcurrentMemtableWrite(true)
            .SkipStatsUpdateOnOpen(true)
            .SetUseDirectReads(true)
            .EnableStatistics();
        static RocksDb db = RocksDb.Open(options, DBPath);
        static void Main(string[] args)
        {
            do
            {
                Console.WriteLine("");
                Console.Write("1)Ara \n2)Kaydet\n---------------- \nSeçiniz:");
                string secim = Console.ReadLine();
                switch (secim)
                {
                    case "1": Ara(); break;
                    case "2": Kaydet(); break;
                }

            } while (true);
        }

        static void Kaydet()
        {
            Console.WriteLine("----------------");
            Console.Write("Tanıt:");
            string key = Console.ReadLine();
            Console.Write("Değer:");
            string val = Console.ReadLine();
            db.Put(key, val);
            Console.WriteLine("----------------");
        }

        static void Ara()
        {
            Console.WriteLine("----------------");
            Console.Write("Aranacak:");
            string key = Console.ReadLine();
            string value = db.Get(key);
            Console.Write("Result:");
            Console.WriteLine(value);
            Console.WriteLine("----------------");
        }
    }

Sonuç aşağıdaki gibidir

https://github.com/meto260/csharp-examples/blob/main/RocksDatabase.cs Kendim sınıf haline getirdiğim hazır kodlar bu liktedir.