web-dev-qa-db-ja.com

StackExchange.Redisの簡単なC#の例

StackExchange.Redisを使用するための非常にシンプルなスターターC#アプリケーションを探しています。Webで検索して、 StackExchange.Redis を見つけました。

しかし、これは簡単な起動例のようには思えません。

StackExchange.Redis exe を使用してWindowsでRedisをセットアップしました

Redisサーバーに接続していくつかのキーを設定して取得する簡単なC#アプリケーションを見つけるのを誰でも手伝ってくれますか?.

19
hellowahab

C#の例は 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"
21
thepirat000

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);
        }
7
Kamran Shahid