Ve skutečnosti, když používáte PersonClient.Lists["urn:names:current"]
ve skutečnosti ukládáte odkaz na připojení RedisClient, které není bezpečné pro vlákna. Je to v pořádku, pokud je to v aplikaci GUI nebo konzole, ale není ideální ve webové aplikaci s více vlákny. Ve většině scénářů chcete používat továrnu na bezpečné připojení vláken, tj.
var redisManager = new PooledRedisClientManager("localhost:6379");
Což funguje velmi podobně jako fond připojení k databázi. Kdykoli tedy chcete získat přístup k RedisClient, funguje takto:
using (var redis = redisManager.GetClient())
{
var allItems = redis.As<Person>().Lists["urn:names:current"].GetAll();
}
Poznámka:.As<T>
je kratší alias pro .GetTypedClient<T>
Další pohodlnou zkratkou pro spuštění zadaného klienta z redisManager je:
var allItems = redisManager.ExecAs<Person>(r => r.Lists["urn:names:current"].GetAll());
Obvykle dávám přednost průchodu kolem IRedisClientsManager
v mém kódu, takže nedrží připojení RedisClient, ale může k němu přistupovat, kdykoli to potřebuje.