使用基于磁盘的redis克隆来减少AWS S3账单

2021-04-28 11:23:50

Redis是一个具有非常高的写入和读取速度的内存数据库,并且数据集不能大于可用RAM.it就像MEMCACHED一样,但支持数据结构而不是仅仅是字符串,而不是作为值.Redis非常适合缓存查找非常重要从外部服务器到AWS S3,可以加快S3读取并将您节省您的资金在传出数据传输成本上。无论何种数据集,都可以限制在机器上的可用RAM的大小意味着您只能缓存小部分您可能的AWS S3 keys.Also with Redis,如果Snapshotting失败,因为您已经使用了更多的RAM而不是可用,那么您的快照将失败并将redis实例强制进入只读模式。这意味着您的生产Redis数据库可能突然停止允许写道,直到你重新启动它,yikes!😱

现在,您可能正在考虑一个解决方案......将数据划分多机REDIS集群。该拆分MAX操作,还有一些缺点:

Wakatime使用S3作为用户代码统计数据库,因为托管Terabytes中的数据集的传统关系数据库很昂贵。要提及传统关系数据库的不可靠性,弹性,可伸缩性和S3的无服务器功能。

Wakatime在DigitaloCean Servers上寄出编程仪表板。这是因为DigitalCean服务器带有专用的附加SSD,而且总体为您提供比EC2.DigItaloCean的S3兼容对象存储服务(空格)更加突出的计算爆炸,但我们不能是非常便宜的,但我们不能为我们的主数据库使用DigitaloCean Spaces,因为它比S3慢得多。

将数据从S3转移到DigitaloCean服务器费用$ 0.09每个GB,因为亚马逊为传出数据传输的价格较高,因为数据库作为数据库的重要组成部分是我们每月的一部分。

为了降低成本并提高性能,我们尝试了使用Redis的缓存S3读取。然而,通过RAM限制的缓存大小,从S3中的读取中几乎没有凹陷。我们需要缓存的RAM数量的S3数据的多重数据轻松成本超过我们的AWS Bill.Instead,我们决定尝试几个基于磁盘的Redis替代方案,并找到一个适合我们需求的完美。

我们已经在生产中使用的磁盘备份的Redis替代品超过3年,现在称为SSDB.SDB是Redis的另一个替代品,因此您无需更改任何客户端库。它使用leveldb(一个键 - 谷歌的价值存储库)在幕后实现与Redis相当的性能。根据基准测试,SSDB的写入略微慢,但读数实际上比REDIS快!😲

SSDB支持与Twemproxy的复制内置和群集。最重要的是,它将您的数据设置在磁盘上使用RAM用于缓存.OUS SSDB数据集是500GB,并且在S3.Rembermber降低读数的良好工作是良好的工作。将SSDB服务器的File-Max增加到至少10k,以防止像Peer.Also重置过多的打开文件或连接重置错误,记住通过运行SSDB-CLI Compact与此定期触发SSDB数据文件上的垃圾收集CRONTAB:

否则您将看到SSDB磁盘使用率即使在删除键后也会生长。

使用SSDB到缓存S3显着减少了我们AWS账单的出站数据传输部分! 🎉与redis的性能相媲美并使用磁盘绕过redis的RAM限制,SSDB是一个强大的精简创业工具。

如果您喜欢这篇文章,请使用Devops Tagse浏览类似的写作.To立即开始使用您的免费代码时间洞察力,为IDE安装Wakatime插件。