Я разрабатываю веб-приложение для медицинских целей, где пользователи могут записаться на прием к конкретному пациенту, врачу и учреждению. В каждом медицинском учреждении может быть N врачей, и календарь будет заполнен N приемами на каждого врача, а также будет отображаться доступность каждого врача (например, «Доктор Кто» работает по средам с 9:00 до 12:00 и с 15:00 до 18:00).
Для внешнего интерфейса я использую fullcalendar, а для внутреннего интерфейса используется Struts2 (контроллеры) + Spring (внедрение зависимостей ) + Спящий режим (ДАО).
Поскольку пользователь (обычно) должен загружать встречи с этой недели на месяц или два в будущем, и может быть от одного до N пользователей для каждого объекта, которые будут использовать это представление в течение длительного времени, я хотел бы кешировать встречи + доступность с помощью Redis, и я добавил в свой проект файл Spring data redis с Lettuce а> клиент. Идея состоит в том, чтобы использовать аннотации @Cacheable
, @CachePut
и @CacheEvict
для методов DAO, обрабатывать действия пользователей, такие как список, создавать и обновлять встречи, избегая конфликтов между данными Redis и данными базы данных и других проблем параллелизма.
Мои вопросы:
- Это правильная стратегия?
- Должен ли я реализовать собственный генератор ключей, чтобы кэшировать встречи, связанные с идентификаторами учреждения и врача?