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

Как правилно да използвам пулове за връзки в redis?

Redis-py предоставя пул за връзки за вас, от който можете да извлечете връзка. Пуловите за връзки създават набор от връзки, които можете да използвате при необходимост (и когато е готово - връзката се връща в пула за връзки за по-нататъшна повторна употреба). Опитът да създадете връзки в движение, без да ги изхвърлите (т.е. да не използвате пул или да не използвате правилно пула) ще ви остави с твърде много връзки за редис (докато не достигнете лимита на връзката).

Можете да изберете да настроите пула за връзки в метода init и да го направите глобален (можете да разгледате други опции, ако не ви е удобно с глобалния).

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)

След това можете да извлечете връзката от пул по следния начин:

redis_conn = redis.Redis(connection_pool=redis_pool)

Също така, предполагам, че използвате hiredis заедно с redis-py, тъй като това би трябвало да подобри производителността в определени случаи. Проверили ли сте също така броя на връзките, отворени към Redis сървъра с вашата съществуваща настройка, тъй като най-вероятно е доста висок? Можете да използвате командата INFO, за да получите тази информация:

redis-cli info

Проверете за Клиенти раздел, в който ще видите „connected_clients ", което ще ви каже колко връзки имате отворени към Redis сървъра в този момент.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Има ли начин да се направи локализиране на специфичен ключ в конкретен екземпляр за преразглеждане в режим на клъстер?

  2. Как Redis ще разбере дали трябва да върне кеширани данни или свежи данни от DB

  3. Redis / Вземете всички ключове и стойности от redis с префикс

  4. споделяне на IO обект в множество екземпляри на възел

  5. Spring data redis отменя сериализатора по подразбиране