DUICUO

.NET Core と Redis のシンプルな出会い: アプリケーションの「記憶力」を高めます。

.NET Core開発者の皆さん、こんにちは!今日は、非常に便利なテクノロジーの組み合わせ、.NET CoreとRedisについてお話します。オープンソースのインメモリデータ構造ストアであるRedisは、キャッシュの世界ではまさにスターと言える存在です。高速で高性能、そして様々なデータ型を簡単に扱えます。では、.NET CoreプロジェクトでRedisをどのように使うのでしょうか?ご安心ください。シンプルで実践的なチュートリアルで、実際に使ってみましょう!

Redis を選ぶ理由は何ですか?

まず、Redisを使うべき理由についてお話ししましょう。簡単に言うと、Redisはデータアクセスを高速化するために使用されます。頻繁に使用されるデータをメモリに保存できるため、必要なデータを取得する際に、毎回データベースをゆっくりと検索する必要なく、非常に高速に取得できます。これは、アプリケーションの応答性とユーザーエクスペリエンスを向上させるためのまさに天の恵みです。

準備

始める前に、次の 2 つの点を確認する必要があります。

  • Redisサーバー:Redisサーバーが稼働している必要があります。Redisをローカルにインストールするか、クラウドサービスプロバイダーが提供するRedisサービスを利用できます。
  • .NET Core プロジェクト: もちろん、.NET Core プロジェクトも必要です。まだお持ちでない場合は、今すぐ作成してください。

Redisクライアントライブラリをインストールする

.NET Core で Redis を使用するには、Redis クライアントライブラリが必要です。非常に人気があり強力な Redis クライアントライブラリである StackExchange.Redis をお勧めします。

このライブラリはNuGetパッケージマネージャーを使ってインストールできます。.NET Coreプロジェクトでパッケージマネージャーコンソールを開き、次のコマンドを入力します。

 Install-Package StackExchange.Redis

あるいは、Visual Studio の「NuGet パッケージの管理」インターフェースで StackExchange.Redis を直接検索してインストールすることもできます。

Redisサーバーに接続する

ライブラリをインストールしたら、次はRedisサーバーに接続します。これは簡単で、数行のコードで実行できます。

 using StackExchange.Redis; // 创建一个连接多路复用器(ConnectionMultiplexer) var redis = ConnectionMultiplexer.Connect("localhost:6379"); // 假设Redis服务器运行在本地,端口为6379 // 获取一个数据库实例(Redis默认有16个数据库,这里我们使用第0个) IDatabase db = redis.GetDatabase();

注: 上記の接続文字列「localhost:6379」は、Redisサーバーのアドレスとポート番号です。Redisサーバーがローカルではない場合、または異なるポートを使用している場合は、この文字列を変更してください。

シンプルなCRUD操作

Redis に接続すると、いくつかの簡単な CRUD (作成、読み取り、更新、削除) 操作を実行できるようになります。

(1)キーと値のペアを設定する

// 设置一个字符串类型的键值对db.StringSet("myKey", "Hello, Redis!");

(2)キーと値のペアを取得する

// 获取键对应的值string value = db.StringGet("myKey"); Console.WriteLine(value); // 输出:Hello, Redis!

(3)キーと値のペアを更新する

実際、更新操作は同じキーに新しい値を設定するだけなので、コードはキーと値のペアを設定する場合と同じです。

 // 更新键的值db.StringSet("myKey", "Hello again, Redis!");

(4)キーと値のペアを削除する

// 删除键bool wasKeyDeleted = db.KeyDelete("myKey"); Console.WriteLine(wasKeyDeleted); // 输出:True(如果键存在并被删除)

他のデータ型の処理

Redisは文字列だけでなく、ハッシュ、リスト、セット、ソート済みセットなど、様々なデータ型を保存できます。StackExchange.Redisライブラリを使えば、これらのデータ型を簡単に操作できます。

たとえば、ハッシュを保存する場合:

 // 存储一个哈希var hash = new HashEntry[] { new HashEntry("field1", "value1"), new HashEntry("field2", "value2") }; db.HashSet("myHash", hash); // 获取哈希的值HashEntry[] hashEntries = db.HashGetAll("myHash"); foreach (var entry in hashEntries) { Console.WriteLine($"{entry.Name}: {entry.Value}"); }

予防

  • 接続管理:ConnectionMultiplexer はスレッドセーフであり、長時間実行されるアプリケーション向けに設計されています。そのため、アプリケーションのライフサイクル全体を通して、毎回新しいインスタンスを作成するのではなく、同じ ConnectionMultiplexer インスタンスを再利用する必要があります。
  • 例外処理:Redis を操作する際には、様々な例外(接続失敗、タイムアウトなど)が発生する可能性があります。そのため、アプリケーションの堅牢性を確保するために、適切な例外処理ロジックをコードに追加する必要があります。
  • パフォーマンスの最適化:Redisは非常に高いパフォーマンスを誇りますが、そのパフォーマンスを最大限に引き出すには、いくつかの細かい点に注意を払う必要があります。例えば、バッチ操作を使用してネットワークのラウンドトリップを削減したり、データ保存に適切なデータ型を選択したりすることが挙げられます。

さて、今日の話はこれで終わりです。この記事が、.NET Core プロジェクトで Redis を使い始めるのに役立つことを願っています。