Неправильно ли писать в guava LoadCache? Если это так, пожалуйста, объясните мне, почему это было бы плохой практикой?Неправильно ли вы писать в Guava LoadCache?
ответ
Это просто сочетание двух подходов.
Либо кеш используется как компонент, хранящий данные приложения, и приложение отвечает за управление как чтением, так и записью, тогда имеет смысл использовать для него класс Cache.
Или кеш используется как интерфейс к неизвестному хранилищу данных, и приложение должно полностью не знать, как загружаются данные, тогда имеет смысл использовать LoadCache. Реализация обычно предоставляется снаружи путем инъекции зависимостей.
Могут быть случаи, когда приложение хочет переопределить данные как в внешнем источнике, так и вносить изменения в кеш, но это очень странная ситуация и, вероятно, не будет отвечать требованиям, поскольку кэш будет иметь задержку в другом приложении в любом случае.
спасибо, у меня есть база данных. – user1041035
Это не так, например. по обновлению. Однако выполнение get-compute-put является плохой практикой, поскольку несколько потоков могут участвовать в гонке. Загрузка через кеш - лучшая практика. –
спасибо, что я бы загрузил 70% за 30%, которые мне пришлось бы хранить в кеше. – user1041035