Alguien me preguntó qué era PubSub y cómo crear un canal (en comentario desde my answer) y le indiqué el artículo en redis.io =>http://redis.io/topics/pubsub. Creo que está bastante claro, pero me pregunto si alguien tiene una mejor explicación. Idealmente, descríbalo claramente usando redis-cli
.¿Qué es Redis pubsub y cómo lo uso?
Respuesta
Publicar/suscribir es un paradigma bastante simple. Piense que está ejecutando un programa de entrevistas en una estación de radio. Eso es PUBLICAR. Esperas que al menos una o más personas seleccionen tu canal para escuchar tus mensajes en el programa de radio (SUSCRIBIRSE) e incluso hacer algunas cosas, pero no estás hablando con la gente directamente.
¡Divirtámonos un poco con redis-cli!
redis 127.0.0.1:6379> PUBLISH myradioshow "Good morning everyone!"
(integer) 0
redis 127.0.0.1:6379> PUBLISH myradioshow "How ya'll doin tonight?"
(integer) 0
redis 127.0.0.1:6379> PUBLISH myradioshow "Hello? Is anyone listening? I'm not wearing pants."
(integer) 0
Aviso no hay clientes que reciben los mensajes en su canal "myradioshow" (que es el 0 en la respuesta). Nadie está escuchando. Ahora, abra otra Redis-cli (o, a veces más divertido tener un amigo abrir sus Redis-cli y conectarse a su servidor) y suscribirse al canal:
redis 127.0.0.1:6379> SUBSCRIBE myradioshow
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "myradioshow"
3) (integer) 1
Ir de nuevo a su original, Redis-CLI y continúe su demostración:
redis 127.0.0.1:6379> PUBLISH myradioshow "Next caller gets a free loaf of bread!"
(integer) 1
¿Tenga en cuenta que "1" al final? ¡Tienes un oyente! Al igual que la magia, en su terminal SUSCRIPCIÓN-d:
1) "message"
2) "myradioshow"
3) "Next caller gets a free loaf of bread!"
Por supuesto, en la realidad, lo que probablemente va a querer hacer cosas que son más útiles que decirle a sus clientes acerca de su estilo de vida pantalones menos, como de fuego eventos en su servidor o ejecutar algún tipo de tareas/trabajos. ¡Quizás no sin embargo! :)
- 1. Faye o Redis Pubsub
- 2. ¿Qué es el/elemento? ¿Como lo uso? ¿Y por qué?
- 3. ¿Qué es exactamente streambuf? ¿Como lo uso?
- 4. El mantenimiento de una suscripción Redis PubSub abierto con Booksleeve
- 5. ¿Qué es ct100 y cómo lo cambio?
- 6. ¿Qué es makeinfo y cómo lo obtengo?
- 7. En Redis pubsub, ¿es posible pasar un objeto al comando PUBLICAR?
- 8. jedis pubsub y timeouts: ¿cómo escuchar infinitamente como suscriptor?
- 9. cómo implementar la función de tiempo de espera pubsub de redis?
- 10. Redis replication y redis sharding (clúster) diferencia
- 11. MSBuild: ¿Qué es y cuándo lo necesito?
- 12. ¿Qué es SAPI y cuándo lo usarías?
- 13. IRequiresSessionState: ¿cómo lo uso?
- 14. CakeEmail - ¿Cómo lo uso?
- 15. Redis y Memcache o solo Redis?
- 16. ¿Qué es la cobertura del código y cómo lo mides?
- 17. ¿Qué es un yeso no revisado y cómo lo verifico?
- 18. ¿Qué es el paster y cómo lo instalo?
- 19. ObjectSpace: ¿qué es y cómo lo usa la gente?
- 20. ¿Qué es XML BOM y cómo lo detecto?
- 21. XMPP: agregar bidireccionalidad a pubsub?
- 22. Marshalling: ¿qué es y por qué lo necesitamos?
- 23. ¿Qué es un Manifiesto en Scala y cuándo lo necesitas?
- 24. ¿Qué es Repo y por qué lo usa Google?
- 25. lo que es Contexto Android y por qué es necesario
- 26. ¿Qué es SELF JOIN y cuándo lo usarías?
- 27. Redis PUBLISH/SUBSCRIBE limits
- 28. ¿Ir o no ir con Liferay? ¿Qué es lo bueno, lo malo y lo feo?
- 29. PubSub/patrones ligeramente acoplados y MVC en Javascript
- 30. ¿Qué significa esto y cómo lo ayuda?
¿Por qué el suscriptor reciben "subscribe" y "myradioshow", como los mensajes en lugar de "Buenos días a todos!" ¿etc.? – bcoughlan
Esos son solo mensajes de confirmación de Redis en forma de respuesta masiva, que le indica lo que hizo y a qué se suscribió, y el 1 indica una respuesta exitosa. Vea aquí: http://redis.io/commands/subscribe. En mi ejemplo, el SUBSCRIBE sucede después de que los mensajes iniciales consiguieron publican, por lo que no reciben "Buenos días a todos!" etc. porque esos mensajes ya se han ido. En otras palabras, SUBSCRIBE solo recibe mensajes publicados que se publican _después_ de la suscripción (es decir, no es una cola). –
@AashayDesai un escenario común cuando uno quiere/necesita usar publicar y suscribirse sería útil – kentor