Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Jak prawidłowo korzystać z pul połączeń w redis?

Redis-py udostępnia pulę połączeń, z której możesz pobrać połączenie. Pule połączeń tworzą zestaw połączeń, z których można korzystać w razie potrzeby (a po zakończeniu połączenie jest zwracane do puli połączeń w celu dalszego wykorzystania). Próba tworzenia połączeń w locie bez ich odrzucania (tzn. niekorzystanie z puli lub nieprawidłowe korzystanie z puli) sprawi, że będziesz mieć zbyt wiele połączeń do ponownego odtworzenia (do momentu osiągnięcia limitu połączeń).

Możesz wybrać ustawienie puli połączeń w metodzie init i uczynić pulę globalną (możesz spojrzeć na inne opcje, jeśli nie czujesz się komfortowo z globalną).

redis_pool = None

def init():
    global redis_pool
    print("PID %d: initializing redis pool..." % os.getpid())
    redis_pool = redis.ConnectionPool(host='10.0.0.1', port=6379, db=0)

Następnie możesz odzyskać połączenie z puli w ten sposób:

redis_conn = redis.Redis(connection_pool=redis_pool)

Zakładam również, że używasz Hiredis razem z redis-py, ponieważ w niektórych przypadkach powinno to poprawić wydajność. Czy sprawdziłeś również liczbę otwartych połączeń z serwerem redis przy istniejącej konfiguracji, ponieważ najprawdopodobniej jest ona dość wysoka? Możesz użyć polecenia INFO, aby uzyskać te informacje:

redis-cli info

Sprawdź Klientów sekcja, w której zobaczysz „connected_clients " pole, które powie Ci, ile masz otwartych połączeń z serwerem redis w tej chwili.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. zdobądź kontener docker python do interakcji z kontenerem docker redis

  2. Zarządzanie połączeniem do redis z Pythona

  3. Jedis — kiedy używać metody returnBrokenResource()

  4. Tworzenie słuchacza redis - możliwe w php?

  5. Sugestie dotyczące prostego rozwiązania do rozproszonego buforowania .NET