sql >> データベース >  >> NoSQL >> Redis

Redis用のC#/。NETクライアント

    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の概要#


    1. Redisから値を取得してNGiNXの変数に入れるにはどうすればよいですか?

    2. MongoDB $ isoDayOfWeek

    3. NodejsMongoをサブドキュメントに挿入-動的フィールド名

    4. Redisキーが期限切れにならないのはなぜですか?