Я разместил аналогичный вопрос на форумах сообщества Adobe, но было предложено задать его и здесь.
Я пытаюсь кэшировать отдельные запросы, связанные с определенной базой данных, и мне нужно иметь возможность сбрасывать все запросы для этой базы данных, оставляя другие кешированные запросы нетронутыми. Поэтому я решил воспользоваться возможностями ehcache ColdFusion. Я создал конкретную область кеша для запросов из этой конкретной базы данных, поэтому я могу использовать cacheRemoveAll(myRegionName) для сброса этих сохраненных запросов.
Поскольку мне нужно, чтобы каждый отдельный запрос кэшировался и легко извлекался, я решил хэшировать параметры запроса в уникальную строку, которую буду использовать в качестве ключа кэша для каждого запроса. Вот подход, который я пробовал до сих пор:
- Создайте структуру, содержащую пары ключ-значение параметров (имя параметра, значение параметра).
- Преобразуйте структуру в строку, используя SerializeJSON().
- Хэшируйте строку с помощью Hash().
Есть ли смысл в этом подходе? Мне интересно, как другие подошли к генерации ключей кэша. Кроме того, подходит ли для этой цели алгоритм «MD5», и будет ли он гарантировать генерацию уникального ключа, или мне нужно использовать «SHA»?