Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 34045|Ответ: 6

[Источник] .NET использует кэш Redis для уведомлений о истечении срока действия

[Скопировать ссылку]
Опубликовано 22.08.2020 10:34:59 | | | |
При выполнении определённых операций по времени нам нужна обратная связь о результатах. Например, заказы автоматически удаляются после истечения срока, заказы автоматически хвалятся через несколько дней, неоплаченные заказы закрываются через 15 минут и так далее, что можно выполнить с помощью некоторых временных фреймворков задач или методов опросов. В этой статье используется расширенный механизм уведомления о событиях истечения кэша функций Redis в сочетании с кодом .NET/C# для выполнения бизнес-требований.

Знакомство

Сценарии использования: 1. В платежном бизнесе неоплаченные заказы автоматически закрываются 2. Напоминания о истечении срока действия кэша

В целом, сервис тайминга можно использовать для обработки автоматического закрытия неоплаченных заказов, например, каждую минуту вызывая интерфейс для обработки неоплаченных и просроченных заказов, но в этом случае это будет понижать производительность компьютера, даже если заказа нет, он будет обрабатываться каждую минуту, максимальная задержка времени обработки заказа составит 59 секунд, и сервис тайминга должен быть всегда доступен

Так что же мы хотим делать только при неоплаченных и просроченных заказах с низкой задержкой обработки? Мы можем использовать механизм истечения кэша Redis, чтобы продвинуть подписку?

Подписка на Redis

Измените события Ex с notify-keyspace-событиями в конфигурационном файле redis.conf

Для сохранения ресурсов кубков уведомления о событиях по умолчанию не включаются, а по умолчанию — notify-keyspace-events

# Уведомление о пространстве клавиш K, <db>с префиксом __keyspace@__
# Уведомление о событии клавиши E, <db>с префиксом __keysevent@__
# g del, expipre, переименование и другие типы универсальных команд, ...
# $string командование
# I List команды
#s Задать команду
# h Команда хэша
# z приказал установить команду
# x Событие истечения (генерируется каждый раз, когда ключ истекает)
# e e-событие выселения (генерируется при очистке ключа при заполнении памяти)
# Псевдоним g$lshzxe, значит «AKE» означает все события


Notify-keyspace-events «KX» означает, что вы хотите отслеживать события невалидации ключа. Установка параметра в строку AKE означает отправку всех типов уведомлений.

Я установил redis как сервис на своём компьютере, изменил конфигурационный файл redis.windows.conf и пришлось перезапустить конфигурацию сервиса Redis, чтобы она вступила в силу.

Пример кода .NET/C#

Пакет выглядит следующим образом:



взывать



Давайте попробуем написать кэш с помощью redis-cli.





На самом деле, вы также можете подписаться на уведомления о истечении срока действия кэша, выполнив следующую команду через redis-cli:




Когда N клиентов подписываются на уведомления о событии истечения кэша, redis уведомляет N пользователей об одном и том же сообщении, а не только одному из клиентов, как показано на рисунке ниже:



Скачать исходный код на C#:

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

сводка

Redis pub/sub — это ненадёжный механизм сообщений, он не хранит информацию, пересылает только онлайн, и уж точно нет механизма подтверждения ACK, а пересылается только сегмент подписки, поэтому Keyspace Notifications тоже ненадёжная система уведомлений, если нашему бизнесу нужна хорошая надежность, то это не лучший выбор. В целом мы рекомендуем использовать DLX (Dead-Letter-Exchange) от RabbitMQ для реализации — функцию задержки очереди. Просто решение Redis проще в реализации и дешевле в эксплуатации. Это всё равно очень удобно для бизнеса, которым не требуется высокая надёжность.




Предыдущий:Китайский умный запрос для установки .NET Core 3.1
Следующий:.NET не получает полный эталонный сборщик
Опубликовано 29.08.2020 14:33:18 |
Учитесь учиться
Опубликовано 2021-11-30 13:16:47 |
Учитесь
Опубликовано 2021-11-30 13:21:02 |
Redis pub/sub — это ненадёжный механизм сообщений, он не хранит информацию, пересылает только онлайн, и уж точно нет механизма подтверждения ACK, а пересылается только сегмент подписки, поэтому Keyspace Notifications тоже ненадёжная система уведомлений, если нашему бизнесу нужна хорошая надежность, то это не лучший выбор. В целом мы рекомендуем использовать DLX (Dead-Letter-Exchange) от RabbitMQ для реализации — функцию задержки очереди. Просто решение Redis проще в реализации и дешевле в эксплуатации. Это всё равно очень удобно для бизнеса, которым не требуется высокая надёжность.
Опубликовано 2022-2-14 17:42:43 |
Слушай, учись
Опубликовано 2022-3-2 15:25:00 |
Учитесь
Опубликовано 27.07.2022 16:40:13 |
Учитесь учиться
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com