sql >> Databasteknik >  >> NoSQL >> Redis

Är detta en giltig användning av ServiceStack Redis?

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.



  1. Redis Pub/Sub med tillförlitlighet

  2. apollostack/graphql-server - hur man får de efterfrågade fälten i en fråga från resolver

  3. Skapa en samling i MongoDB

  4. Hur ClusterControl utför automatisk databasåterställning och failover