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 #