Redis 연결하기

이 수업에서는 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 연결하기

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다