Следуя некоторым другим вопросам SO, я разрабатываю приложение для мониторинга веб-сайтов в качестве проекта для домашних животных с целью узнать больше о Node.js + Redis.Архитектура базы данных с использованием Redis + Node.js
Я планировал, чтобы пользователи добавляли URL-адреса и добавляли их в Redis SET
. Каждую минуту я получаю результаты SET, выполняю запрос HTTP Get и печатаю ответ.
Это, кажется, работает хорошо, однако, у меня есть несколько вопросов:
Учитывая, что Redis SET не допускает повторные ключи (которые сэкономят мне делать запрос на тот же URL), как я могу контролировать, когда пользователь удаляет URL-адрес из своей учетной записи, а другой пользователь имеет тот же URL-адрес? Могу ли я иметь значение
INCR
в URL-адресе, чтобы узнать, сколько у пользователей URL-адреса в их учетной записи?Учитывая, что я могу сделать запрос HTTP каждую минуту, и я хочу использовать Redis для сохранения результатов (время отклика, вверх/вниз, и т.д.), , что это лучший способ сохранить все эти данные в Redis (результаты от запросов к каждому URL-адресу каждую минуту)? Должен ли я сохранять каждый ответ в уникальном ключе Redis?
Для того, чтобы показать результаты пользователю в режиме реального времени, что является лучшим способом запроса результатов и анализа его в реальном времени?
Спасибо за помощь.
Хорошо! Это имеет большой смысл! Благодаря! Только один вопрос сложный, вам нужно будет добавить новые результаты в JSON. Это лучшее решение для этого? Нет ли проблем масштабирования после того, как файл JSON станет огромным? Можете ли вы подробно рассказать об этом немного лучше? У меня очень мало опыта использования JS/JSON. Спасибо, Альфред! ;) – donald
Если вам нужно сохранить исторические данные для каждого URL-адреса, а не только текущие данные, используйте список, а не простой ключ. Вы теряете MSET, но вам не нужно беспокоиться о предыдущих данных при записи и легко обрезать список. Я также хотел бы сохранить список URL-адресов, а также или вместо набора - список, настроенный как очередь, вы можете легко разложить запросы, а не запускать их все сразу. –
@ Donald Я был в отпуске последние пару дней, но я ничего не добавляю. Вы должны еще раз взглянуть на документацию MSET. Но также вы немного правы, я думаю, что это может затормозить, если строка MSET слишком длинная. Возможно, я просто использовал бы множество SETS, а также очень быстро (около 110000 SET в секунду). – Alfred