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

Jak navrhnout redis pub/sub pro systém rychlých zpráv?

Jako vždy musíte věci, jako je toto, porovnávat pro svůj vlastní případ použití - není možné poskytnout obecnou radu. Možná budete muset zvýšit maximální počet otevřených souborů ve vašem systému, buď v rámci celého systému, nebo pro uživatele redis. To platí samozřejmě také pro uživatele provozujícího váš webový server.

To znamená, že byste se měli ujistit, že posloucháte socket.on('disconnect') a quit() předplatitel redis, když uživatel odejde. Také by vás mohlo zajímat, že socket.io má backend redis, který využívá redis pub/sub, a má také koncept místností, takže si tím můžete ušetřit nějaké problémy, protože jste již závislí na socketu. .io.

Upravit: Po rychlé kontrole dostávám od Redis po 991 odběratelích tuto chybovou zprávu:

Ready check failed: Error: Error: ERR max number of clients reached

Zde je výchozí redis.conf :

# Set the max number of connected clients at the same time. By default
# this limit is set to 10000 clients, however if the Redis server is not
# able ot configure the process file limit to allow for the specified limit
# the max number of allowed clients is set to the current file limit
# minus 32 (as Redis reserves a few file descriptors for internal uses).
#
# Once the limit is reached Redis will close all the new connections sending
# an error 'max number of clients reached'.
#
# maxclients 10000

Můj systém (Ubuntu 11.11) je dodáván s výchozím nofile limit 1024, takže můj rychlý test by měl selhat po 992 připojených klientech, což se zdá hned z testu (mám také jednoho klienta pro vydavatele). Navrhuji vám zkontrolovat váš nofile limit (v mém systému je to v /etc/security/limits.{conf,d/*} a vaši redis maxclients nastavení a poté benchmark, benchmark, benchmark!




  1. Použití Redis Object Cache k urychlení instalace WordPressu

  2. Jak implementujete automaticky se zvyšující primární ID v MongoDB?

  3. Přidejte nějaké číslo řádku do agregovaného příkazu / potrubí mongodb

  4. MongoDB/NoSQL:Vedení historie změn dokumentů