web-dev-qa-db-ja.com

ASP.NETでRedisの使用を開始する

ASP.NETで Redis データベースの使用を開始するにはどうすればよいですか?

インストールすべきものとダウンロードすべきもの

Visual Studio 2008をC#で使用しています。

22
Rawhi

Servicestackドライバーを使用して、C#からRedisインスタンスにアクセスできます。 its GitHub repository からコードをダウンロードできます。

16
RameshVel

参考までに:

serviceStack.Redis C#クライアントのみを使用するオープンソースのASP.NET Webアプリケーションです。

ここに例がありますInversion of control (IoC)コンテナを使用してRedisクライアント接続プールとそれに付随するIRepositoryをIoCに登録する方法:

//Register any dependencies you want injected into your services
container.Register<IRedisClientsManager>(c => new PooledRedisClientManager());
container.Register<IRepository>(c => new Repository(c.Resolve<IRedisClientsManager>()));

注:クライアントから始めたばかりの場合は、C#Client Wiki、特に Redisチュートリアルを使用した簡単なブログアプリケーションの設計 *。

30
mythz

お勧め StackExchage.Redis ASP.netのクライアントライブラリ。この [〜#〜] msdn [〜#〜] の記事で見られるように、Microsoftによって推奨されています。無料でオープンソースです。利用可能なRedisクライアントの完全なリストも見てください: http://redis.io/clients

WindowsベースのプラットフォームでRedisをインストールしてクライアントを使用する場合は、ダウンロードとインストール Redisサービス(Documentaionを使用したサーバーおよびクライアントツール) マイクロソフトによって書いた。

5
Mehdi

Asp.Net MVCプロジェクトへのRedisの統合から取得
最初に行うことは、マシンにRedisをインストールすることです。 Linux用に作成されていますが、Windows用の簡単なインストールがあります。実際、Microsoftにはオープンソースの実装があり、この GitHub ページからインストールをダウンロードできます。

NugetからStackExchange.Redisをインストールします。
その後、次のように使用できます。

public class RedisCache : ICache
{
private readonly ConnectionMultiplexer redisConnections;

public RedisCache()
{
    this.redisConnections = ConnectionMultiplexer.Connect("localhost");
}
public void Set<T>(string key, T objectToCache) where T : class
{
    var db = this.redisConnections.GetDatabase();
    db.StringSet(key, JsonConvert.SerializeObject(objectToCache
                , Formatting.Indented
                , new JsonSerializerSettings
                {
                    ReferenceLoopHandling = ReferenceLoopHandling.Serialize,
                    PreserveReferencesHandling = PreserveReferencesHandling.Objects
                }));
}


public T Get<T>(string key) where T :class
{
    var db = this.redisConnections.GetDatabase();
    var redisObject = db.StringGet(key);
    if (redisObject.HasValue)
    {
        return JsonConvert.DeserializeObject<T>(redisObject
                , new JsonSerializerSettings
                {
                    ReferenceLoopHandling = ReferenceLoopHandling.Serialize,
                    PreserveReferencesHandling = PreserveReferencesHandling.Objects
                });
    }
    else
    {
        return (T)null;
    }
}
2
Arvand