Faktisk når du bruger PersonClient.Lists["urn:names:current"]
du gemmer faktisk en reference til en RedisClient-forbindelse, som ikke er trådsikker. Det er ok, hvis det er i en GUI eller Console-app, men ikke ideelt i en multi-threaded web-app. I de fleste scenarier ønsker du at bruge en trådsikker forbindelsesfabrik, dvs.
var redisManager = new PooledRedisClientManager("localhost:6379");
Hvilket fungerer meget som en databaseforbindelsespulje. Så hver gang du ønsker at få adgang til RedisClient fungerer som:
using (var redis = redisManager.GetClient())
{
var allItems = redis.As<Person>().Lists["urn:names:current"].GetAll();
}
Bemærk:.As<T>
er et kortere alias for .GetTypedClient<T>
En anden praktisk genvej til at udføre en indtastet klient fra en redisManager er:
var allItems = redisManager.ExecAs<Person>(r => r.Lists["urn:names:current"].GetAll());
Jeg foretrækker normalt at sende IRedisClientsManager
rundt i min kode, så den ikke har en RedisClient-forbindelse, men kan få adgang til den, når den skal.