連接 Redis

本課示範在 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

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *