C# 사용 가이드

EnyimMemcached C# 사용 가이드

1. 라이브러리 소개

EnyimMemcached는 .NET Framework/.NET 환경에서 사용하는 Memcached 공식 메인스트림 .NET 클라이언트 라이브러리입니다. Attila Kiskó가 유지보수하며 NuGet으로 설치하고 텍스트 프로토콜 혹은 바이너리 프로토콜로 Memcached 서버에 연결합니다.

참고: 최신 버전 EnyimMemcached는 NuGet 패키지 이름이 Enyim.Caching 입니다

2. 환경 준비

  1. 로컬 Memcached 서비스 실행, 기본 포트:11211
  2. Visual Studio에서 .NET Framework 콘솔 프로젝트 생성
  3. NuGet에서 패키지 검색 후 설치:EnyimMemcached (패키지 ID: Enyim.Caching)

3. App.config 전체 설정 예시

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
  </startup>

  <!-- 설정 섹션을 먼저 등록해야 함 -->
  <configSections>
    <sectionGroup name="enyim.com">
      <section name="memcached"
               type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching" />
    </sectionGroup>
  </configSections>

  <!-- Memcached 연결 설정 -->
  <enyim.com>
    <memcached protocol="Text">
      <!-- Memcached 서버 주소 -->
      <servers>
        <add address="127.0.0.1" port="11211" />
      </servers>
      <!-- 소켓 풀 설정 -->
      <socketPool minPoolSize="10" 
                  maxPoolSize="20" 
                  connectionTimeout="00:00:10"
                  deadTimeout="00:02:00" />
    </memcached>
  </enyim.com>
</configuration>Code language: HTML, XML (xml)

설정 설명:

  • protocol="Text": Memcached 텍스트 프로토콜 사용, Binary 바이너리 프로토콜로 변경 가능
  • minPoolSize/maxPoolSize: 소켓 풀 최소·최대 연결 개수
  • address/port: Memcached 서버 주소와 포트

4. 사용 예시 (콘솔 앱)

using System;
using Enyim.Caching;
using Enyim.Caching.Memcached;

namespace ConsoleApplication1
{
    class Program
    {
        // Memcached 클라이언트 싱글톤(전역에서 재사용, 잦은 인스턴스 생성 피하기)
        private static readonly MemcachedClient uniqueInstance = new MemcachedClient();

        static void Main(string[] args)
        {
            // StoreMode.Set: 키가 있으면 덮어쓰고 없으면 새로 생성
            uniqueInstance.Store(StoreMode.Set, "site", "foxdevelop.com");

            // 문자열 캐시 값 가져오기
            string value = uniqueInstance.Get<string>("site");
            Console.WriteLine(value);

            Console.Read();
        }
    }
}Code language: JavaScript (javascript)

자주 쓰이는 API

메서드기능
Store(StoreMode.Set, key, value)캐시 쓰기(덮어쓰기)
Store(StoreMode.Add, key, value)키가 없을 때만 데이터 저장
Get<T>(key)제네릭 방식으로 캐시 읽기
Remove(key)캐시 항목 삭제
GetCas(key)CAS 원자적 읽기, 동시성 처리에 사용

기존 App.config 설정 방식은 .NET Framework 에서만 동작합니다.
.NET Core/.NET 6 이상은 XML 설정 파일 대신 코드 기반 설정을 권장합니다.

.NET Core/.NET6 코드 기반 설정 (App.config 불필요)

var config = new MemcachedClientConfiguration();
config.Servers.Add(new System.Net.IPEndPoint(System.Net.IPAddress.Loopback, 11211));
config.Protocol = MemcachedProtocol.Text;
var client = new MemcachedClient(config);Code language: JavaScript (javascript)

.NET Core 및 최신 .NET 환경에서 직접 테스트해볼 수 있습니다

C# 사용 가이드

답글 남기기

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