sql >> Databáze >  >> NoSQL >> Redis

Je toto platné použití ServiceStack Redis?

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.



  1. mongodb najít porovnáním hodnot polí

  2. Redis tcp-backlog

  3. Nasazení a konfigurace MongoDB Shards pomocí Ansible

  4. import JSON do mongoDB pomocí pymongo