に基づいてNet、いくつかの一般的なNoSQLデータベースを使用

4365 ワード

目次
  • 0 .Netのキャッシュオブジェクト
  • 1.MemCached
  • 2.Redis
  • 3.MongoDB
  • 例フルソースアドレス
    2020年1月10日10:10
    shanzm

  • 0 .Netのキャッシュオブジェクト

  • MemoryCacheオブジェクト
  • HttpContext.Cache(Asp.net)オブジェクト
  • 例:(詳細は、001 MemoryCacheを参照)
    //MemoryCache             ,         
    //    :System.Runtime.Caching
    //        ,         
    MemoryCache memCache = MemoryCache.Default;
    //           ,       10s
    memCache.Add("name", "shanzm", DateTimeOffset.Now.AddSeconds(10));

    1.MemCached

  • インストールパッケージダウンロード:コンパイルされたインストールパッケージ
  • を推奨
  • NuGet:PM> Install-Package EnyimMemcached
  • MemCachedでのCas操作:(詳細は:003 Cas操作)
  • 例:(詳細は:002 MemCachedDemoを参照)
    //      
    MemcachedClientConfiguration memConfig = new MemcachedClientConfiguration();
    memConfig.AddServer("127.0.0.1:11211");
    
    //  MemcachedClient  
    using (MemcachedClient memClient = new MemcachedClient(memConfig))
    {
        //  MemCached 
        memClient.Store(Enyim.Caching.Memcached.StoreMode.Set, "Name", "shanzm");
        memClient.Store(Enyim.Caching.Memcached.StoreMode.Set, "Age", "100");
    
        //    
        string name = memClient.Get("Name");
        if (name == null)
        {
            Console.WriteLine("   ");
        }
        else
        {
            Console.WriteLine(name);
        }
    
        //    
        Console.WriteLine(memClient.Get("Age"));
        memClient.Remove("Age");
        if (null == memClient.Get("Age"))
        {
            Console.WriteLine("   Key Age    MemCached      ");
    
        }
        Console.ReadKey();
    }

    2.Redis

  • インストールRedis(公式windows版なし、マイクロソフト自身がオープンソースバージョンを維持)
  • 共通のコマンド:
  • 参照
  • Redis GUIクライアントのインストール:RedisDesktopManager(cracked 2019.5バージョンを推奨)
  • NuGet:PM>Install-Package StackExchange.Redist(サポートされているdotnetバージョンに注意)公式アドレス
  • Redisの6種類のデータ型の具体的な操作および使用例005 Redisを使用してニュースクリック量006 Redisのlistを計算007アナログ登録送信メール検証008 Redisのsetを使用009 Redisのsorted setを使用010 Redisのsorted setを使用してホット検索011 Redisのhashを使用して012 Redisのgeoを使用(最新バージョンのRedisのみをサポートすることに注意)015 Redisを使用してランダムなお年玉
  • を実現
    例:(詳細は:004 RedisDemo)
    //            
    using (ConnectionMultiplexer conn = await ConnectionMultiplexer.ConnectAsync("127.0.0.1:6379"))
    {
        //   0    ,       , 3    ,conn.GetDatabase(3)
        IDatabase db = conn.GetDatabase();
    
        //    
        await db.StringSetAsync("Name", "  ", TimeSpan.FromSeconds(10));
    
        //    (  Redis Batch    013Redis     )
        KeyValuePair[] kvs = new KeyValuePair[3];
    
        kvs[0] = new KeyValuePair("A", "a");
        kvs[1] = new KeyValuePair("B", "b");
        kvs[2] = new KeyValuePair("C", "c");
        await db.StringSetAsync(kvs);
    
        //    (         null)
        string name = await db.StringGetAsync("Name");
        string A = await db.StringGetAsync("A");
    
        //    
        db.KeyDelete("A");
    
        //          
        if (!db.KeyExists("A"))
        {
            MessageBox.Show("   Key  ‘A’   ");
        }
    
        //              
        db.KeyExpire("B", TimeSpan.FromSeconds(10));
    }

    3.MongoDB

  • インストールMongoDB(公式アドレス)
  • インストールMongoDB GUIクライアント:Robo 3 T
  • NuGet:PM>Install-Package MongoDB.Driver-Version 2.5.0(デフォルトのインストール最新バージョンでは、親測2.5.0バージョンと.net Frameworkバージョンで4.6.1完全なサポートが間違って報告される可能性があります)
  • MongoDBにおける完全な添削調査、参照:017 MongoDBにおけるCURD
  • 例:(詳細は、016 MongoDBDemoを参照)
    //  MongoDB  ,    
    MongoClient client = new MongoClient("mongodb://127.0.0.1:27017");
    //    :TestDb1    ,       !
    IMongoDatabase db = client.GetDatabase("TestDb1");
    //      Personsde (collection      )       !
    IMongoCollection persons = db.GetCollection("Persons");
    
    
    Person p1 = new Person() { Id = 0001, Name = "shanzm", Age = 25 };
    Person p2 = new Person() { Id = 002, Name = "shanzm" };//MongoDB  Age     0
    
    persons.InsertOne(p1);
    persons.InsertOne(p2);