このレッスンではWinFormsからRedisを操作するデモを行います。他の種類のプロジェクトでも同じ考え方で実装でき、ここはWinFormsで例示しています。
Redisをインストールすると独立したサービスプログラムとして動作します。C# WinFormsから利用する際は、データベースへ接続するのと同じように接続処理を記述します。
下記の接続文字列設定はapp.configに記述します
1. App.config 設定
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<!-- Redis接続文字列 -->
<add name="RedisConnectionString" connectionString="127.0.0.1:6379"/>
<!-- 省略記述 connectionString="localhost" デフォルトポート6379 -->
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>Code language: HTML, XML (xml)
接続文字列の解説
localhost/127.0.0.1:ローカルのRedisサービス- 既定ポート 6379;ポート変更時の書き方:
127.0.0.1:6380 - Redisにパスワードが設定されている場合:
127.0.0.1:6379,password=パスワード
2. Form1.cs 主要コード
必要なNuGetパッケージ
StackExchange.Redis
インポートする名前空間
using StackExchange.Redis;
using System.Configuration;Code language: C# (cs)
public partial class Form1 : Form
{
// Redisデータベース操作用オブジェクト
private IDatabase db;
// 設定ファイルから接続文字列を読み込む
private string ConnectionString = ConfigurationManager.ConnectionStrings["RedisConnectionString"].ConnectionString;
// 多重化接続(公式推奨シングルトン、volatileでスレッドセーフを確保)
private volatile IConnectionMultiplexer connection;
public Form1()
{
InitializeComponent();
// 接続を作成
connection = ConnectionMultiplexer.Connect(ConnectionString);
// 既定の0番データベースを取得
db = connection.GetDatabase();
}
private void button1_Click(object sender, EventArgs e)
{
// Setメソッド:キャッシュ書き込み(キー、値、有効期限秒)
bool res = Set(this.textBox1.Text, this.textBox2.Text, 1000);
if (res)
{
MessageBox.Show("設定成功");
}
else
{
MessageBox.Show("設定失敗");
}
}
/// <summary>
/// Redis文字列キーバリュー書き込み(簡易ラッパー)
/// </summary>
bool Set(string key, object data, int cacheTime)
{
if (string.IsNullOrEmpty(key)) return false;
// 有効期限を設定
var expire = TimeSpan.FromSeconds(cacheTime);
return db.StringSet(key, data.ToString(), expire);
}
}Code language: C# (cs)
Redisへ接続
Previous: WinFormsでRedisを動作確認
Next: 値を書き込む