我可以确定由于某种原因不会删除我的数据,使用内存存储(Redis)是否安全,还是应该将数据复制到云数据存储?
当我增加内存容量时,所有数据都安全吗?
答案 0 :(得分:1)
可能在Memorystore中导致数据丢失(即由于某种原因导致的内存刷新)的事件仅会影响Memorystore“基本”实例。
Memorystore具有两个实例层:Basic and Standard。
基本层实例受以下事件影响,这将导致完全缓存刷新:
但是,标准实例层具有High Availability configuration,其中包括故障转移以异步复制数据。 在标准实例中,如果发生上述任何事件,则副本将提升为主实例,并且内存将不受影响。但是,唯一可能丢失的数据是在故障转移期间(由于复制的异步性质)未传播到副本的写入。尽管如此,故障转移过程通常很短,大约需要30秒才能完成。
同样,您可以在configure the behaviour of the instances达到最大内存容量时进行配置,并在配置它们时使用maxmemory-policy=noeviction
标志,以避免在发生此事件时实例丢失内存。 See the official Redis documentation for more details。
您提到将数据复制到Cloud Storage,但是目前无法在Memorystore外部复制数据。
关于您的第二个问题,如上所述,在标准层实例中,更改实例容量时不会丢失任何数据。
简而言之:如果您希望最大程度地提高数据和实例的正常运行时间的可靠性,并避免不便的内存刷新,则在使用标准层实例时,Memorystore会提供它。
答案 1 :(得分:1)
关于标准层实例的说明,两次失败可能导致实例完全刷新。我们正在努力实现持久性,还将提供一种功能,用于从Memorystore实例导入数据和从中导出数据。
导入/导出功能定于第二季度初提供。
此处概述了缩放行为。 https://cloud.google.com/memorystore/docs/redis/scaling-behavior
产品经理 云端记忆库