この章ではStackExchange.Redisを利用したC# WinFormsのRedisキャッシュラッパーを扱います
Visual Studioを開き、WinFormsプロジェクトを作成し、NuGetから依存パッケージをインストールします

依存パッケージのインストール
- StackExchange.Redis
.NETエコシステムで最も広く使われているRedisオープンソースクライアント。Redisサーバーと通信するために使用します。
Githubリポジトリ:https://github.com/StackExchange/StackExchange/StackExchange.Redis
RedisはTCPプロトコルを公開しているため理論上Socketを直接書くことも可能ですが、業務開発では実績のあるサードパーティライブラリが一般的です。 - Newtonsoft.Json(Json.NET)
オブジェクトのシリアライズを行い、オブジェクトをJSON文字列、さらにバイト配列へ変換しRedisへ保存。読み出し時に逆にデシリアライズします。
NuGetからインストールが必要です。コード内のJsonConvert.SerializeObjectはこのライブラリに由来します。
Redisラッパーメソッド
// キャッシュ書き込み:オブジェクトを保存、有効期限(分)を指定
private bool Set(string key, object data, int cacheTime)
{
if (data == null)
{
return false;
}
var entryBytes = Serialize(data);
var expiresIn = TimeSpan.FromMinutes(cacheTime);
return db.StringSet(key, entryBytes, expiresIn);
}
// オブジェクトシリアライズ:エンティティオブジェクト → UTF8バイト配列
private byte[] Serialize(object data)
{
var json = JsonConvert.SerializeObject(data);
return Encoding.UTF8.GetBytes(json);
}Code language: PHP (php)
WinFormsでRedisを動作確認