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

Jak se *správně* zeptáte Redis z Tornado?

Pokud jde o blokování příkazů, jako je BLPOP nebo poslech kanálu Pub/Sub, budete potřebovat asynchronního klienta, jako je tornado-redis. Můžete začít s touto ukázkou, abyste viděli, jak lze klienta tornado-redis použít k vývoji jednoduché veřejné chatovací aplikace.

Pro většinu ostatních případů bych ale doporučil používat synchronního klienta redis-py ve spojení s rentaldis.

Hlavní výhodou asynchronního klienta je, že váš server může zpracovávat příchozí požadavky při čekání na odpověď serveru Redis. Server Redis je však tak rychlý, že ve většině případů režie nastavení asynchronních zpětných volání ve vaší aplikaci Tornado zvyšuje celkovou dobu zpracování požadavku než čas strávený čekáním na odpověď serveru Redis.

Pomocí asynchronního klienta se můžete pokusit odeslat více požadavků na server Redis současně, ale server Redis je jednovláknový (stejně jako server Tornado), takže bude odpovídat na tyto požadavky jeden po druhém a nezískáte skoro nic. A ve skutečnosti nemusíte posílat více příkazů Redis současně na stejný server Redis, pokud existují kanály a příkazy jako MGET/MSET.

Asynchronní klient má určité výhody, když používáte několik instancí serveru Redis, ale doporučuji použít synchronního klienta (redis-py) a proxy, jako je twemproxy nebo tento (ten podporuje zřetězení a příkazy MGET/MSET).

Také doporučuji nepoužívat sdružování připojení při použití klienta redis-py v aplikacích Tornado . Stačí vytvořit jeden Redis instance objektu pro každou databázi Redis, ke které se vaše aplikace připojuje.



  1. Implementace vyhodnocení objektu výrazu dotazu typu goMongoDB

  2. Serializujte jednu třídu dvěma různými způsoby s Jacksonem

  3. jak používat agregační funkci v meteoru

  4. mongoexport E QUERY SyntaxError:Neočekávaný identifikátor