Хороший вопрос. Я вижу два пути.
Одним из них является использование блокировки приложения. Когда вы будете готовы перезагрузить кеш, вы блокируете доступ к нему и делаете это. Нет возможности очистить все кэши одновременно. Проблема в том, что все будет заблокировано во время обновления.
Другой способ - использовать другой кеш. Таким образом, вы загружаете новый кеш с новыми данными, а затем меняете новый кеш и просроченный Проблема с этим решением состоит в том, что в данный момент вы занимаете вдвое больше памяти, поскольку оба кэша находятся в памяти.