2012-02-28 10 views
9

Tengo un programa que sondeará una determinada clave desde el almacén de datos redis y hará algo cuando el valor satisfaga una determinada condición.¿Cómo implementar "desencadenar" para el almacén de datos redis?

Sin embargo, creo que las encuestas periódicas en redis son bastante ineficientes, me pregunto si hay un mecanismo de "activación" para redis, cuando el valor cambia y satisface la condición, se llamará al desencadenador. El desencadenante puede ser una función RPC o un mensaje de texto HTTP, o algo más, por lo que ya no necesito sondearlo, al igual que la diferencia entre sondeo e interrupción.

¿Esto es posible?

Respuesta

13

Puede usar la función Pub/Sub de Redis. Es exactamente lo que necesita dadas sus circunstancias como describió.

Esencialmente, usted SUBSCRIBE a un "canal", y la otra parte de su aplicación escribe (PUBLISH) el valor que se cambia a ese canal. Su suscriptor (consumidor, el cliente que quiere saber sobre el cambio) será notificado prácticamente en tiempo real.

+1

Gracias por su respuesta. He leído la documentación de la función Pub/Sub de Redis, pero aún no entiendo cómo se activa cuando cambia un valor. ¿Quién hará la acción "Pub"? Sin sondear sobre el valor, ¿cómo desencadenar la acción "Pub"? – ciphor

+0

El cliente que está escribiendo los valores debe publicar que los valores han cambiado. –

+0

@ciphor si entiendo tu pregunta, la idea es cambiar la lógica de tu aplicación, así que en lugar de (o además de) escribir tu valor en una clave de redis "simple", la escribes en el canal, de modo que cada suscriptor (puede ser uno por supuesto) se notifica inmediatamente. –

0

Si puede usar Pub/Sub, es lo mejor. Si por alguna razón eso no funciona, también podría usar el comando (que impacta el rendimiento) MONITOR, que le enviará cada comando que reciba el servidor. Probablemente no sea una buena idea.

Específicamente para listas, tiene BLPOP, que bloqueará la conexión hasta que un nuevo elemento esté disponible para aparecer de una lista.

Cuestiones relacionadas