0Pricing
C# Academy · レッスン

Redisへの接続

Redis分散キャッシュを設定します。

「Redisへの接続」はCoddyKit上の無料C# Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC# Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C# Academyコースには全4レッスンが含まれています。

Redis とは

Redis は高速なインメモリのキー・バリューデータストアで、分散キャッシュとして広く利用されています。独立したサーバーとして動作し、複数のアプリインスタンスがネットワーク経由で接続します。

パッケージのインストール

ASP.NET Core は Microsoft.Extensions.Caching.StackExchangeRedis パッケージを通じて Redis と統合します。このパッケージは StackExchange.Redis クライアントを IDistributedCache に適合させます。

dotnet add package Microsoft.Extensions.Caching.StackExchangeRedis

AddStackExchangeRedisCache による Redis の登録

サービス登録で AddStackExchangeRedisCache を呼び出し、接続文字列を指定します。これにより、Redis が IDistributedCache の実装として組み込まれます。

builder.Services.AddStackExchangeRedisCache(options =>
{
    options.Configuration = "localhost:6379";
});

構成の使用

接続文字列は appsettings.json に保存し、IConfiguration 経由で読み取って環境ごとに変えられるようにしてください。

builder.Services.AddStackExchangeRedisCache(options =>
{
    options.Configuration =
        builder.Configuration.GetConnectionString("Redis");
});

InstanceName プレフィックス

InstanceName を設定すると、Redis が保存するすべてのキーにプレフィックスが付加されます。これによりアプリのキーが名前空間に分けられるため、複数のアプリで1つの Redis インスタンスを安全に共有できます。

builder.Services.AddStackExchangeRedisCache(options =>
{
    options.Configuration = "localhost:6379";
    options.InstanceName = "MyApp:";
});

接続文字列のオプション

StackExchange.Redis の接続文字列は、複数のエンドポイント、パスワード、SSL、タイムアウトなど、多くのオプションをサポートしています。各オプションはカンマで区切ります。

options.Configuration =
    "redis-server:6380,password=secret,ssl=True,abortConnect=False";

同じインターフェースで本物の Redis を利用

登録が完了した後も、これまでとまったく同じように IDistributedCache を使い続けられます。変更するのは登録行だけなので、サービスのコードを編集せずに Redis への接続を開始できます。

public WeatherService(IDistributedCache cache) => _cache = cache;
// GetStringAsync / SetStringAsync now talk to Redis

Redis をローカルで実行する

開発時には Docker で Redis をすぐに実行し、接続文字列の接続先を Redis に指定できます。

docker run -p 6379:6379 redis:7
# then Configuration = "localhost:6379"

マネージド Redis の選択肢

本番環境では、Azure Cache for Redis や AWS ElastiCache などのマネージドサービスが、スケーリング、永続化、フェイルオーバーを処理します。通常は SSL エンドポイントとアクセスキーを使って接続します。

options.Configuration =
    "myapp.redis.cache.windows.net:6380,password=KEY,ssl=True";

接続の回復性への対応

abortConnect=False を設定すると、起動時に Redis が一時的に利用できない場合でも、クライアントはすぐに例外をスローせず再試行を続けます。呼び出しレベルの回復性には Polly も組み合わせてください。

ヘルスチェック

Redis のヘルスチェックを登録すると、アプリからオーケストレーターやロードバランサーにキャッシュの接続状態を報告できます。

builder.Services.AddHealthChecks()
    .AddRedis("localhost:6379");

クイックチェック

Redis への接続をテストしてみましょう。

まとめ

Redis は高速な外部キャッシュです。Microsoft.Extensions.Caching.StackExchangeRedis をインストールし、Configuration の接続文字列を指定して AddStackExchangeRedisCache を呼び出します。必要に応じて InstanceName プレフィックスも指定できます。サービスでは引き続き IDistributedCache を変更せずに使用できます。環境ごとに構成を分け、回復性のために abortConnect=False を設定し、Redis のヘルスチェックを追加してください。

よくある質問

「Redisへの接続」レッスンは無料ですか?

はい。「Redisへの接続」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C# Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C# Academyコースには全4レッスンが含まれています。

「Redisへの接続」で何を学びますか?

Redis分散キャッシュを設定します。 ブラウザで直接実行するハンズオンコードでC# Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

C# Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのC# Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「Redisへの接続」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このC# Academyレッスンでコードを書いて実行できますか?

はい。すべてのC# Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. IDistributedCache抽象化
  2. Redisへの接続
  3. キャッシュパターンと有効期限
  4. シリアライズされたオブジェクトのキャッシュ
← C# Academyに戻る