実際に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接続を保持していませんが、必要なときにいつでもアクセスできます。