EnyimMemcached ‑ Utilisation en C#
1. Présentation de la bibliothèque
EnyimMemcached est la bibliothèque cliente .NET officielle et largement utilisée pour Memcached, compatible avec .NET Framework et .NET. Elle est maintenue par Attila Kiskó, s’installe via NuGet et se connecte à Memcached avec le protocole texte ou binaire.
Remarque : la version récente d’EnyimMemcached est publiée sous le paquet NuGet Enyim.Caching
2. Préparation de l’environnement
- Lancer le service Memcached local, port par défaut :
11211 - Créer un projet console .NET Framework dans Visual Studio
- Rechercher et installer le paquet NuGet :
EnyimMemcached(identifiant : Enyim.Caching)
3. Configuration complète App.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
</startup>
<!-- Enregistrer la section de configuration au préalable -->
<configSections>
<sectionGroup name="enyim.com">
<section name="memcached"
type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching" />
</sectionGroup>
</configSections>
<!-- Paramètres de connexion Memcached -->
<enyim.com>
<memcached protocol="Text">
<!-- Adresse du serveur Memcached -->
<servers>
<add address="127.0.0.1" port="11211" />
</servers>
<!-- Paramètres du pool de sockets -->
<socketPool minPoolSize="10"
maxPoolSize="20"
connectionTimeout="00:00:10"
deadTimeout="00:02:00" />
</memcached>
</enyim.com>
</configuration>Langage du code : HTML, XML (xml)
Explication des paramètres :
protocol="Text": utilise le protocole texte Memcached, peut passer au protocole binaireBinaryminPoolSize/maxPoolSize: nombre minimal et maximal de connexions du pool de socketsaddress/port: adresse hôte et port du serveur Memcached
4. Exemple d’utilisation (application console)
using System;
using Enyim.Caching;
using Enyim.Caching.Memcached;
namespace ConsoleApplication1
{
class Program
{
// Client Memcached singleton (réutiliser globalement, éviter les instanciations répétées)
private static readonly MemcachedClient uniqueInstance = new MemcachedClient();
static void Main(string[] args)
{
// StoreMode.Set : écrase si la clé existe, crée une entrée sinon
uniqueInstance.Store(StoreMode.Set, "site", "foxdevelop.com");
// Récupérer une valeur cache de type chaîne
string value = uniqueInstance.Get<string>("site");
Console.WriteLine(value);
Console.Read();
}
}
}Langage du code : JavaScript (javascript)
API courantes
| Méthode | Fonction |
|---|---|
Store(StoreMode.Set, key, value) | Écrire dans le cache (écrasement) |
Store(StoreMode.Add, key, value) | Écrire seulement si la clé n’existe pas |
Get<T>(key) | Lire une valeur cache générique |
Remove(key) | Supprimer une entrée du cache |
GetCas(key) | Lecture atomique CAS pour les traitements concurrents |
La configuration classique avec
App.configne fonctionne qu’avec .NET Framework ;
Pour .NET Core/.NET 6+, préférez la configuration dans le code sans fichier XML.
Configuration dans le code pour .NET Core/.NET6 (sans 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);Langage du code : JavaScript (javascript)
Vous pouvez tester ce code sur .NET Core et les versions récentes de .NET
Utilisation en C#
Next: Opérations CRUD