ServiceStackのC#Redisクライアントは、POCOと複雑なタイプをシリアル化するためのネイティブサポートと高レベルの抽象化を備えた、Redis用のシンプルで高性能で機能豊富なC#クライアントです。
RedisClient
で利用できるさまざまなAPIがいくつかあります 次のインターフェイスを実装します:
- キャッシュプロバイダー-Redisをキャッシュとしてのみ使用している場合は、ServiceStackで利用可能なメモリ内のMemcached実装がすでに存在するため、ServiceStackの共通インターフェースにバインドする必要があります。これによりプロバイダーを簡単に切り替えることができます
- IRedisNativeClient / Async-同じ名前のRedis操作と1:1でマップする低レベルのrawバイトアクセス(独自のシリアル化/逆シリアル化を制御できる)が必要な場合。
ほとんどの場合、Redis固有の機能へのアクセスが必要な場合は、以下のインターフェースにバインドする必要があります。
- IRedisClient / Async-値を文字列として保存できる、より使いやすく、よりわかりやすいAPIを提供します(UTF8エンコーディング)。
- Redis汎用クライアントAPI-
redis.As<T>()
で作成 -任意のC#/。NETPOCOタイプに対して機能するすべてのredis値操作に型付きインターフェイスを提供する「強い型のクライアント」を返します。
インターフェースはどのIOCでもきれいに機能し、アプリロジックを実装不要のインターフェースにバインドできます。これは簡単にモックして置き換えることができます。
C#Redisクライアントのクラス階層の概要は次のようになります。
RedisTypedClient (POCO) > RedisClient (string) > RedisNativeClient (raw byte[])
各クライアントが異なる抽象化レイヤーを提供する場合:
- RedisNativeClientは生の
byte[]
を公開します apisであり、マーシャリングを行わず、すべての値を直接redisに渡します。 - RedisClientは
string
を想定しています 値を設定し、Redisに送信する前に文字列をUTF8バイトに変換するだけです - RedisTypedClientは、POCO値を追加できる汎用インターフェイスを提供します。 POCOはServiceStack.Textを使用してシリアル化され、UTF8バイトに変換されてRedisに送信されます。
APIの概要#