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

これはServiceStackRedisの有効な使用法ですか?

    実際にPersonClient.Lists["urn:names:current"]を使用する場合 実際には、スレッドセーフではないRedisClient接続への参照を保存しています。 GUIまたはコンソールアプリであれば問題ありませんが、マルチスレッドWebアプリでは理想的ではありません。ほとんどのシナリオでは、スレッドセーフな接続ファクトリを使用する必要があります。つまり

    var redisManager = new PooledRedisClientManager("localhost:6379");
    

    これは、データベース接続プールのように機能します。したがって、RedisClientにアクセスする場合は、次のように機能します。

    using (var redis = redisManager.GetClient())
    {
        var allItems = redis.As<Person>().Lists["urn:names:current"].GetAll();
    }
    

    注:.As<T> .GetTypedClient<T>の短いエイリアスです。 redisManagerから型付きクライアントを実行するためのもう1つの便利なショートカットは次のとおりです。

    var allItems = redisManager.ExecAs<Person>(r => r.Lists["urn:names:current"].GetAll());
    

    私は通常、IRedisClientsManagerを渡すことを好みます 私のコードでは、RedisClient接続を保持していませんが、必要なときにいつでもアクセスできます。



    1. Python辞書:u'文字を削除する

    2. MongoDB insert()

    3. Mongodb v4.0トランザクション、MongoError:トランザクション番号はレプリカセットメンバーまたはmongosでのみ許可されます

    4. phpRedisのクラスターへの移行とコンシステントハッシュ