События, которые могут привести к потере данных (т. Е. По какой-то причине сброс памяти) в Memorystore, в основном затрагивают только экземпляры Memorystore "Basic".
Memorystore имеет два уровня экземпляров: Базовый и Стандартный .
На основные элементы уровня влияют следующие события, которые приведут к полной очистке кэша:
- Масштабирование экземпляра (т.е. повышение или понижение емкости экземпляра)
- Техническое обслуживание
- Экземпляр перезапускается (запускается вручную)
Однако уровень экземпляра Standard имеет конфигурацию High Availability , которая включает аварийное переключение для асинхронной репликации данных.
В стандартных случаях, в случае возникновения какого-либо из указанных выше событий, реплика будет повышена до основного экземпляра, а память останется неизменной. Однако единственными данными, которые могут быть потеряны, являются записи, которые не были переданы реплике во время восстановления после сбоя (из-за асинхронного характера репликации). Тем не менее процесс восстановления после сбоя обычно короткий и занимает около 30 секунд.
Также вы можете настроить поведение экземпляров , когда они достигнут максимальной емкости памяти, и использовать флаг maxmemory-policy=noeviction
при их настройке, чтобы избежать сброса памяти экземпляром, если это событие случается. Для получения более подробной информации см. Официальную документацию Redis .
Вы упомянули репликацию данных в облачное хранилище, но в настоящее время нет способа реплицировать данные за пределы Memorystore.
Что касается вашего второго вопроса, как я уже упоминал выше, в экземпляре стандартного уровня не будет потери данных при изменении емкости экземпляра.
Короче говоря : если вы хотите максимально возможной надежности данных и времени безотказной работы экземпляра, и избегаете неудобных сбросов памяти, Memorystore предоставляет его при использовании экземпляров стандартного уровня.