Lapin files d'attente du résident en mémoire et sera donc beaucoup plus rapide que la mise en œuvre de cette dans une base de données. Une (bonne)dédié message de la file d'attente devrait également fournir l'essentiel des files d'attente liés à des caractéristiques telles que la limitation/de contrôle de flux, et la possibilité de choisir différents algorithmes de routage, pour n'en nommer un couple(lapin fournit ces et plus). Selon la taille de votre projet, vous pouvez également le passage de messages composante distincte à partir de votre base de données, de sorte que si l'une des composantes des expériences de charge lourde, il ne faut pas gêner les autres.
Comme pour les problèmes que vous avez mentionnés:
interrogation de la base buzy et à faible rendement: à l'Aide de Rabbitmq, les producteurs peuvent pousser les mises à jour pour les consommateurs, ce qui est beaucoup plus performant que l'interrogation. Les données sont simplement transmis au consommateur lorsqu'elle en a besoin, éliminant le besoin de gaspillage des contrôles.
le verrouillage de la table -> encore peu performant: Il n'y a pas de table pour verrouiller :P
des millions de lignes de la tâche -> nouveau bureau de vote est faible rendement: Comme mentionné ci-dessus, Rabbitmq va plus vite comme il se trouve de la RAM, et fournit le contrôle de flux. Si besoin, il peut également utiliser le disque pour stocker temporairement les messages si elle est à court de RAM. Après la 2.0, le Lapin a amélioré de façon significative sur son utilisation de la RAM. Clustering options sont également disponibles.
En ce qui concerne AMQP, je dirais vraiment une fonctionnalité intéressante est la "bourse", et la capacité pour qu'il voie à d'autres échanges. Cela vous donne plus de flexibilité et vous permet de créer un large éventail d'élaborer des typologies de routage qui peut s'avérer très utile lors de la mise à l'échelle. Pour un bon exemple, voir: http://blog.springsource.com/wp-content/uploads/2011/04/routing-topology.png
et: http://blog.springsource.org/2011/04/01/routing-topologies-for-performance-and-scalability-with-rabbitmq/
Enfin, en ce qui concerne le redis, oui, il peut être utilisé comme un message broker, et peut bien faire. Cependant, Rabbitmq a plus de message queuing de fonctions que le redis, rabbitmq a été construit à partir du sol pour être un plein de fonctionnalités de niveau entreprise dédiée file d'attente de messages. Redis sur l'autre main a été principalement créé pour être une clé de mémoire-valeur en magasin(même si elle fait beaucoup plus que cela maintenant; son même appelé un couteau de l'armée suisse). Encore, j'ai lu/entendu beaucoup de gens obtenir de bons résultats avec le Redis pour les petits projets de taille, mais je n'ai pas entendu parler dans les grandes applications.
Voici un exemple de redis être utilisé dans un long-polling chat de mise en œuvre: http://eflorenzano.com/blog/2011/02/16/technology-behind-convore/