Redis
 sql >> база данни >  >> NoSQL >> Redis

Това валидно използване на ServiceStack Redis ли е?

Всъщност, когато използвате 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 връзка, но да има достъп до него, когато има нужда.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Записване на HASH в Redis в приложение за rails

  2. Redis:Неуспешно отваряне на .rdb за запазване:Разрешението е отказано

  3. Laravel :Redis Не може да се направи връзка :[tcp://127.0.0.1:6379]

  4. Как мога да внедря тази единична разпределена опашка с паралелност във всяка MQ платформа?

  5. Redis Stack Exchange как да изтриете или получите ключове по шаблон