本課示範在 WinForm 裡操作 Redis,其他專案的寫法大同小異,這裡僅用 WinForm 做示範。
安裝 Redis 之後,Redis 會以獨立服務程式執行。在 C# WinForm 使用它,就如同連接一般資料庫一樣,需要建立連線。
以下是連接字串設定,放置在 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: 使用 WinForm 示範 Redis
Next: 寫入數值