Klient C# Redis firmy ServiceStack to prosty, wydajny i bogaty w funkcje klient C# dla Redis z natywną obsługą i abstrakcjami wysokiego poziomu do serializacji POCO i typów złożonych.
Istnieje wiele różnych interfejsów API dostępnych z RedisClient
implementacja następujących interfejsów:
- Dostawca pamięci podręcznej — jeśli używasz Redis wyłącznie jako pamięci podręcznej, powinieneś powiązać ze wspólnym interfejsem ServiceStack, ponieważ w ServiceStack są już dostępne implementacje In-Memory i Memcached, co pozwala na łatwą zmianę dostawców
- IRedisNativeClient / Async — dla tych, którzy chcą mieć dostęp do surowych bajtów niskiego poziomu (gdzie można kontrolować własną serializację/deserializację), które mapują 1:1 z operacjami Redis o tej samej nazwie.
W większości przypadków, jeśli potrzebujesz dostępu do konkretnych funkcji Redis, chcesz powiązać je z poniższym interfejsem:
- IRedisClient / Async — zapewnia bardziej przyjazny, bardziej opisowy interfejs API, który umożliwia przechowywanie wartości w postaci ciągów (kodowanie UTF8).
- Redis ogólne interfejsy API klienta — utworzone za pomocą
redis.As<T>()
- zwraca "klienta o silnym typie", który zapewnia typowy interfejs dla wszystkich operacji na wartościach redis, które działają z dowolnym typem C#/.NET POCO.
Interfejsy działają czysto z dowolnym IOC i umożliwiają powiązanie logiki aplikacji z interfejsami bez implementacji, które można łatwo wyszydzić i zastąpić.
Przegląd hierarchii klas dla klientów C# Redis wygląda następująco:
RedisTypedClient (POCO) > RedisClient (string) > RedisNativeClient (raw byte[])
Każdy klient zapewnia różne warstwy abstrakcji:
- RedisNativeClient udostępnia nieprzetworzony
byte[]
apis i nie organizuje i przekazuje wszystkie wartości bezpośrednio do redis. - RedisClient zakłada
string
wartości i po prostu konwertuje ciągi na bajty UTF8 przed wysłaniem do Redis - RedisTypedClient zapewnia ogólny interfejs umożliwiający dodawanie wartości POCO. POCO są serializowane przy użyciu ServiceStack.Text, który jest następnie konwertowany do bajtów UTF8 i wysyłany do Redis.
Przegląd API #