Redis
 sql >> Datenbank >  >> NoSQL >> Redis

C#/.NET-Client für Redis

Der C# Redis Client von ServiceStack ist ein einfacher, leistungsstarker und funktionsreicher C#-Client für Redis mit nativer Unterstützung und High-Level-Abstraktionen für die Serialisierung von POCOs und komplexen Typen.

Mit dem RedisClient sind verschiedene APIs verfügbar Implementieren der folgenden Schnittstellen:

  • Caching-Anbieter – Wenn Sie Redis ausschließlich als Cache verwenden, sollten Sie sich an die gemeinsame Schnittstelle von ServiceStack binden, da in ServiceStack bereits In-Memory- und Memcached-Implementierungen verfügbar sind, sodass Sie den Anbieter einfach wechseln können
  • IRedisNativeClient / Async - Für diejenigen, die einen Low-Level-Rohbyte-Zugriff (wo Sie Ihre eigene Serialisierung/Deserialisierung steuern können) wünschen, der 1:1 mit gleichnamigen Redis-Operationen verknüpft wird.

Wenn Sie Zugriff auf Redis-spezifische Funktionen benötigen, sollten Sie in den meisten Fällen eine Bindung an die folgende Schnittstelle herstellen:

  • IRedisClient/Async – Bietet eine freundlichere, aussagekräftigere API, mit der Sie Werte als Zeichenfolgen (UTF8-Codierung) speichern können.
  • Generische Redis-Client-APIs – erstellt mit redis.As<T>() - gibt einen „stark typisierten Client“ zurück, der eine typisierte Schnittstelle für alle Redis-Wertoperationen bereitstellt, die mit jedem C#/.NET-POCO-Typ funktioniert.

Die Schnittstellen funktionieren sauber mit jedem IOC und ermöglichen Ihrer App-Logik, sich an implementierungsfreie Schnittstellen zu binden, die leicht nachgeahmt und ersetzt werden können.

Eine Übersicht über die Klassenhierarchie für die C# Redis-Clients sieht folgendermaßen aus:

RedisTypedClient (POCO) > RedisClient (string) > RedisNativeClient (raw byte[])

Mit jedem Client, der verschiedene Abstraktionsebenen bereitstellt:

  • Der RedisNativeClient legt unformatiertes byte[] offen apis und führt kein Marshalling durch und übergibt alle Werte direkt an redis.
  • Der RedisClient nimmt string an Werte und wandelt Strings einfach in UTF8-Bytes um, bevor sie an Redis gesendet werden
  • Der RedisTypedClient bietet eine generische Schnittstelle, mit der Sie POCO-Werte hinzufügen können. POCOs werden mit ServiceStack.Text serialisiert, das dann in UTF8-Bytes konvertiert und an Redis gesendet wird.

API-Übersicht #