Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 34045|Respuesta: 6

[Fuente] .NET utiliza caché Redis para notificaciones de caducidad

[Copiar enlace]
Publicado el 22-8-2020 10:34:59 | | | |
Al realizar ciertas operaciones con tiempo limitado, necesitamos retroalimentación sobre los resultados. Por ejemplo, los pedidos se eliminan automáticamente tras la expiración, los pedidos se felicitan automáticamente tras unos días, los pedidos impagados se cierran tras 15 minutos, etc., lo que puede completarse utilizando algunos marcos de tareas con tiempo o métodos de consulta. Este artículo utiliza el mecanismo avanzado de notificación de eventos de caducidad de caché de Redis combinado con código .NET/C# para completar los requisitos empresariales.

Introducción

Escenarios de uso: 1. En el negocio de pagos, las órdenes impagadas se cierran automáticamente 2. Recordatorios de caducidad de caché

En general, podemos usar el servicio de temporización para procesar el cierre automático de pedidos impagos, como llamar a la interfaz cada minuto para tratar pedidos impagados y caducados, pero en este caso, consumirá el rendimiento del ordenador, incluso si no hay pedido, se procesará cada minuto, y el retraso máximo del tiempo de procesamiento será de 59 segundos, y el servicio de cronometraje debe estar siempre disponible

Entonces, ¿qué queremos hacer? Solo cuando haya pedidos impagados y caducados con procesamiento de baja latencia, podemos usar el mecanismo de caducidad de caché de Redis para impulsar la suscripción.

Suscripción a Redis

Modifica el notify-keyspace-events Ex en el archivo de configuración redis.conf

Para ahorrar recursos de la copa, las notificaciones de eventos no están activadas por defecto, y por defecto es notify-keyspace-events

# Notificación de espacio de teclas K, <db>prefijado con __keyspace@__
# Notificación de evento clave E, <db>prefijada con __keysevent@__
# g del, expipre, rename y otros tipos de comandos genéricos, ...
# $string orden
# Comando l List
#s Comando Set
# h Comando Hash
# Comando de conjunto ordenado z
# x Evento de caducidad (generado cada vez que caduca una clave)
# Evento de expulsión E (generado cuando la clave se borra y la memoria está llena)
# Un alias g$lshzxe, así que "AKE" significa todos los eventos


Notify-keyspace-events "KX" indica que quieres monitorizar eventos de invalidación para una clave. Establecer el parámetro en la cadena AKE significa enviar todo tipo de notificaciones.

Instalé Redis como servicio en mi máquina, modifiqué el archivo de configuración redis.windows.conf y tuve que reiniciar la configuración del servicio de Redis para que entrara en vigor.

Ejemplo de código .NET/C#

El paquete es el siguiente:



invocar



Probemos a escribir una caché con redis-cli.





De hecho, también puedes suscribirte a las notificaciones de caducidad de la caché ejecutando el siguiente comando a través de redis-cli:




Cuando N clientes se suscriben a notificaciones de eventos de caducidad en caché, Redis notificará a N usuarios del mismo mensaje de expiración, no solo a uno de los clientes, como se muestra en la figura siguiente:



Descarga del código fuente en C#:

https://down.itsvse.com/item/17856.html

resumen

Redis pub/sub es un mecanismo de mensajes poco fiable, no almacena información, solo reenvía en línea, y definitivamente no existe un mecanismo de confirmación de ack, y solo se reenviará el segmento de suscripción, así que Keyspace Notifications también es un sistema de notificaciones poco fiable; si nuestro negocio necesita buena fiabilidad, entonces no es la mejor opción. Generalmente, recomendamos DLX (Dead-Letter-Exchange) de RabbitMQ para implementarlo, que es la función de cola retardada. Simplemente, la solución de Redis es más fácil de implementar y menos costosa de operar. Sigue siendo muy conveniente para empresas que no requieren una alta fiabilidad.




Anterior:Prompt inteligente chino de instalación de .NET Core 3.1
Próximo:.NET no recibe el ensamblador de referencia completo
Publicado el 29-8-2020 14:33:18 |
Aprende a aprender
Publicado el 30-11-2021 13:16:47 |
Apréndelo
Publicado el 30-11-2021 13:21:02 |
Redis pub/sub es un mecanismo de mensajes poco fiable, no almacena información, solo reenvía en línea, y definitivamente no existe un mecanismo de confirmación de ack, y solo se reenviará el segmento de suscripción, así que Keyspace Notifications también es un sistema de notificaciones poco fiable; si nuestro negocio necesita buena fiabilidad, entonces no es la mejor opción. Generalmente, recomendamos DLX (Dead-Letter-Exchange) de RabbitMQ para implementarlo, que es la función de cola retardada. Simplemente, la solución de Redis es más fácil de implementar y menos costosa de operar. Sigue siendo muy conveniente para empresas que no requieren una alta fiabilidad.
Publicado el 14-2-2022 17:42:43 |
Mira, aprende
Publicado el 2022-3-2 15:25:00 |
Apréndelo
Publicado el 27-7-2022 16:40:13 |
Aprende a aprender
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com