Всъщност, когато използвате PersonClient.Lists["urn:names:current"]
всъщност съхранявате препратка към RedisClient Connection, която не е безопасна за нишки. Добре е, ако е в GUI или конзолно приложение, но не е идеално в многонишково уеб приложение. В повечето сценарии искате да използвате фабрика за безопасна връзка с нишки, т.е.
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 е:
var allItems = redisManager.ExecAs<Person>(r => r.Lists["urn:names:current"].GetAll());
Обикновено предпочитам да предавам IRedisClientsManager
в моя код, така че да не поддържа RedisClient връзка, но да има достъп до него, когато има нужда.