Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 34045|Отговор: 6

[Източник] .NET използва кеша на Redis за известия за изтичане на срока

[Копирай линк]
Публикувано на 22.08.2020 10:34:59 | | | |
При изпълнение на определени операции с ограничено време, имаме нужда от обратна връзка за резултатите. Например, поръчките се изтриват автоматично след изтичане, поръчките се хвалят автоматично след няколко дни, неплатените поръчки се затварят след 15 минути и т.н., което може да се изпълни с някои временни задачи или методи за анкетиране. Тази статия използва усъвършенствания механизъм за известие за събития за изтичане на функции в кеша на Redis, комбиниран с .NET/C# код, за да изпълни бизнес изискванията.

Въвеждането

Сценарии на употреба: 1. В бизнеса с плащания неплатените поръчки се затварят автоматично 2. Напомняния за изтичане на кеша

Обикновено можем да използваме услугата за тайминг за обработка на автоматичното затваряне на неплатени поръчки, като например да се обаждаме на интерфейса всяка минута за обработка на неплатени и изтекли поръчки, но в този случай това ще изразходва производителност на компютъра, дори и да няма поръчка, тя ще се обработва всяка минута, а максималното забавяне на времето за обработка на поръчката ще бъде 59 секунди, а услугата за тайминг трябва винаги да е налична

И така, какво искаме да правим само когато има неплатени и изтекли поръчки с ниска латентност, можем да използваме механизма за изтичане на кеша на Redis, за да увеличим абонамента?

Абонамент за Redis

Променете notify-keyspace-events Ex в конфигурационния файл redis.conf

За да се пестят ресурси на чашата, известията за събития по подразбиране не са включени, а по подразбиране са notify-keyspace-events

# Известие за ключово пространство K, <db>с префикс с __keyspace@__
# E key event notification, <db>с префикс __keysevent@__
# g del, expipre, rename и други видове общи команди, ...
# $string заповед
# I List command
#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 |
Научи го
Публикувано на 30.11.2021 г. 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