2015-10-01 33 views
13

szukam bardzo prosty rozrusznika aplikacji C# za korzystanie StackExchange.Redis mam szukać w internecie i okazało StackExchange.RedisStackExchange.Redis proste C# Przykład

Ale to nie wydaje się być szybki przykład startowego.

mam Redis Setup na systemie Windows za pomocą StackExchange.Redis exe

Może ktoś mi pomóc zlokalizować prostą aplikację w C# łączący się z serwerem Redis i ustawianie i pobieranie niektóre klawisze.

+0

szukasz używać buforowania lub serwer państwa? –

+0

Czy widziałeś [readme] (https://github.com/StackExchange/StackExchange.Redis/blob/master/README.md)? – thepirat000

Odpowiedz

13

Możesz znaleźć przykłady C# w pliku readme.

using StackExchange.Redis; 
... 
ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost"); 
IDatabase db = redis.GetDatabase(); 
string value = "abcdefg"; 
db.StringSet("mykey", value); 
... 
string value = db.StringGet("mykey"); 
Console.WriteLine(value); // writes: "abcdefg" 
+0

Polecam również bibliotekę [CachingFramework.Redis] (https://github.com/thepirat000/CachingFramework.Redis), która jest zbudowana na bazie SE.Redis i zapewnia dodatkową funkcjonalność, taką jak mechanizm tagowania, serializacja w trybie plug-in i wiele więcej. – thepirat000

6

Zobacz następujący kod z ich github sample:

using (var muxer = ConnectionMultiplexer.Connect("localhost,resolvedns=1")) 
     { 
      muxer.PreserveAsyncOrder = preserveOrder; 
      RedisKey key = "MBOA"; 
      var conn = muxer.GetDatabase(); 
      muxer.Wait(conn.PingAsync()); 

      Action<Task> nonTrivial = delegate 
      { 
       Thread.SpinWait(5); 
      }; 
      var watch = Stopwatch.StartNew(); 
      for (int i = 0; i <= AsyncOpsQty; i++) 
      { 
       var t = conn.StringSetAsync(key, i); 
       if (withContinuation) t.ContinueWith(nonTrivial); 
      } 
      int val = (int)muxer.Wait(conn.StringGetAsync(key)); 
      watch.Stop(); 

      Console.WriteLine("After {0}: {1}", AsyncOpsQty, val); 
      Console.WriteLine("({3}, {4})\r\n{2}: Time for {0} ops: {1}ms; ops/s: {5}", AsyncOpsQty, watch.ElapsedMilliseconds, Me(), 
       withContinuation ? "with continuation" : "no continuation", preserveOrder ? "preserve order" : "any order", 
       AsyncOpsQty/watch.Elapsed.TotalSeconds); 
     }