Client Redis pour C# (.NET) : StackExchange.Redis
\n\nDans le développement moderne sur la plateforme .NET, il est souvent nécessaire d'utiliser des systèmes de cache haute performance et des courtiers de messages. L'une des solutions les plus populaires est Redis — un stockage de données en mémoire fonctionnant sur le principe « clé-valeur ». Pour interagir avec Redis depuis C# (.NET), il existe une bibliothèque éprouvée et puissante appelée StackExchange.Redis. Elle a été développée par la société Stack Exchange (créateurs de Stack Overflow) et prend en charge toutes les fonctionnalités principales de Redis, y compris le clustering, la réplication et Pub/Sub.
\n\nQu'est-ce que StackExchange.Redis ?
\n\nStackExchange.Redis est un client Redis haute performance et asynchrone, écrit en C#. La bibliothèque est optimisée pour gérer un grand nombre de connexions simultanées et prend en charge le multiplexage — une seule connexion peut servir plusieurs requêtes parallèles sans blocage. Cela en fait un choix idéal pour les applications à forte charge sur .NET Core, .NET 5/6/7/8 et .NET Framework.
\n\nInstallation de la bibliothèque
\n\nL'installation de StackExchange.Redis se fait via le NuGet Package Manager. La méthode la plus simple consiste à utiliser la console du gestionnaire de paquets dans Visual Studio ou l'interface en ligne de commande dotnet.
\n\ndotnet add package StackExchange.Redis\n\nOu via NuGet :
\n\nInstall-Package StackExchange.Redis\n\nAprès une installation réussie, une référence à l'assembly apparaît dans le projet et vous pouvez commencer à travailler avec Redis.
\n\nConnexion au serveur Redis
\n\nLa classe principale pour l'interaction est ConnectionMultiplexer. Elle gère les connexions à Redis et traite automatiquement les reconnexions, les erreurs réseau et le basculement vers les réplicas.
Exemple de création d'une connexion :
\n\nusing StackExchange.Redis;\n\nclass Program\n{\n static async Task Main(string[] args)\n {\n // Chaîne de connexion au Redis local\n string connectionString = "localhost:6379";\n \n // Création du multiplexeur\n using var redis = await ConnectionMultiplexer.ConnectAsync(connectionString);\n \n // Obtention de la base de données (par défaut db=0)\n IDatabase db = redis.GetDatabase();\n \n // Vérification de la connexion\n bool isConnected = db.Ping().TotalSeconds < 2;\n Console.WriteLine($"Connecté : {isConnected}");\n }\n}\n\nLa chaîne de connexion peut contenir un mot de passe, un port, des paramètres SSL et d'autres options. Par exemple, pour se connecter à un Redis sur un serveur distant avec mot de passe :
\n\n"myredis.cloud.com:6380,password=secret123,ssl=true"\n\nOpérations de base avec les données
\n\nAprès avoir obtenu une instance de IDatabase, vous pouvez effectuer toutes les opérations Redis standard.
Travail avec les chaînes
\n\n// Écriture d'une chaîne\nawait db.StringSetAsync("user:1:name", "Alexeï");\n\n// Lecture d'une chaîne\nstring name = await db.StringGetAsync("user:1:name");\nConsole.WriteLine(name); // Affiche : Alexeï\n\n// Incrémentation d'un compteur\nawait db.StringIncrementAsync("page:visits", 1);\n\nTravail avec les hachages
\n\n// Définition des champs d'un hachage\nHashEntry[] userData = {\n new HashEntry("name", "Maria"),\n new HashEntry("age", 28),\n new HashEntry("city", "Moscou")\n};\nawait db.HashSetAsync("user:2", userData);\n\n// Obtention d'un seul champ\nstring city = await db.HashGetAsync("user:2", "city");\nConsole.WriteLine(city); // Moscou\n\n// Obtenir tous les champs du hachage\nvar allFields = await db.HashGetAllAsync("user:2");\nforeach (var field in allFields)\n{\n Console.WriteLine($"{field.Name}: {field.Value}");\n}\n\nTravail avec les listes
\n\n// Ajout d'éléments à la liste (à gauche)\nawait db.ListLeftPushAsync("notifications", "Première notification");\nawait db.ListLeftPushAsync("notifications", "Deuxième notification");\n\n// Obtention de tous les éléments de la liste\nvar Aussi dans la bibliothèque
Framework CLI pour C# (.NET) : System.CommandLine et Spectre.Console
Kysely TypeScript : guide complet du query builder type-safe
Journalisation en Swift (iOS/macOS) : SwiftyBeaver, XCGLogger, OSLog
Programmation réactive en JavaScript (Node.js) : la bibliothèque RxJS
Client OAuth pour PHP : intégration avec Google, GitHub et VK