Faktiskt när du använder PersonClient.Lists["urn:names:current"]
du lagrar faktiskt en referens till en RedisClient-anslutning som inte är trådsäker. Det är ok om det är i en GUI- eller konsolapp, men inte idealisk i en flertrådig webbapp. I de flesta scenarier vill du använda en trådsäker anslutningsfabrik, dvs.
var redisManager = new PooledRedisClientManager("localhost:6379");
Som fungerar väldigt mycket som en databasanslutningspool. Så närhelst du vill komma åt RedisClient fungerar som:
using (var redis = redisManager.GetClient())
{
var allItems = redis.As<Person>().Lists["urn:names:current"].GetAll();
}
Obs:.As<T>
är ett kortare alias för .GetTypedClient<T>
En annan bekväm genväg för att exekvera en maskinskriven klient från en redisManager är:
var allItems = redisManager.ExecAs<Person>(r => r.Lists["urn:names:current"].GetAll());
Jag föredrar vanligtvis att skicka runt IRedisClientsManager
i min kod så att den inte har en RedisClient-anslutning men kan komma åt den när den behöver.