EnyimMemcached C# 사용 가이드
1. 라이브러리 소개
EnyimMemcached는 .NET Framework/.NET 환경에서 사용하는 Memcached 공식 메인스트림 .NET 클라이언트 라이브러리입니다. Attila Kiskó가 유지보수하며 NuGet으로 설치하고 텍스트 프로토콜 혹은 바이너리 프로토콜로 Memcached 서버에 연결합니다.
참고: 최신 버전 EnyimMemcached는 NuGet 패키지 이름이 Enyim.Caching 입니다
2. 환경 준비
- 로컬 Memcached 서비스 실행, 기본 포트:
11211 - Visual Studio에서 .NET Framework 콘솔 프로젝트 생성
- 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# 사용 가이드
Previous: 명령줄 환경에서 사용
Next: CRUD 작업