从redis切换到Mysql。好主意?

好奇心

我们正在为使用Rails的餐厅构建SaaS后端。我们直接与POS集成,因此每个POS都会不断发送存储的客户订单以供以后处理。我们的POS集成在大约1000个地点进行,每月向我们发送大约300万个单独的客户订单。对于这个写繁重的应用程序,我们将所有订单存储在redis中,它的运行效果非常好。我们正以惊人的速度增长,我们不断在数百个地点添加新餐厅,这些餐厅不断向我们发送大量数据。除非有一个问题-Redis每月都会耗尽内存!就像,所有不必在内存中的东西都在内存中。

这就是为什么我们打算切换到mysql。因为我们确实不需要将所有数据保留在内存中。这是我们当前Redis数据库的编号:

  used_memory_human:39.83G 
  dbsize: 34706870

这是我们在redis中存储为Hash的内容:

id - integer
location_id - integer
stored_at  - timestamp
token - string
transaction_no - integer
menu_items - string(comma seprated list of all menu items that customer ordered along with their price & Qty)
order_amount - decimal
order_subtotal_amount - decimal
order_amount_payable - decimal
order_datetime - timestamp
employee_id - integer
employee_name - string
pos_type - string
post_version - string
restaurant_id - integer

因此,在以下方面寻求一些建议:

  1. 从redis迁移到mysql是个好主意?从长远来看,它将如何影响我们,因为我们将需要不断更新索引和分区方案,以满足巨大的需求。

  2. 除redis外,还有哪些其他数据库(关系数据库或非关系数据库)适合该用例?

  3. 或我们都错了,因为Redis是用于存储此类数据的。因此,我们只是每月继续使用Redis和升级我们的机器?

比尔·卡温

网络上的数据势必会增长。任何长期项目都应该对此有所预见,并制定扩展策略。

随着数据量或流量量的增加,您会发现大约每个数量级的增长都需要对体系结构进行更改才能处理。也许您可以领先一步,但并非永远。而且,您无法预测瓶颈将提前到哪里。

一小部分数据对于应用程序的日常工作很重要,这很常见,您可以将此子集保留在Redis中以利用当前代码。然后,其余数据可以在另一个数据存储中使用,访问速度可能稍慢,但处理增长要容易得多。

您可以取消当前代码,然后将所有内容移至MySQL或另一个数据存储区,但请记住两点:

  • 没有数据库可以让您忽略扩展策略。您可以使用MySQL,PostgreSQL,MongoDB,Hadoop或其他任何方式,但仍然存在数据增长速度快于单个服务器上单个数据库无法处理的问题。

  • 由于开发或运营效率更高的内部原因,从头开始重写应用程序通常不划算(请参阅Joel Spolsky撰写的“您不应该做的事情,第一部分”)。

我建议保留您的Redis应用程序,但尝试将历史数据移动到另一个数据存储中。

我认为MySQL是一个不错的选择,我相信它能够处理您的数据。我定期与客户合作,这些客户将MySQL中的数据保存在TB中,并且每秒处理数万笔事务。但是,由于您尚未提供有关数据使用情况的任何详细信息,因此我无法就MySQL是否是最佳选择提供意见例如,Hadoop可能具有优势。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从redis切换到Mysql。好主意?

来自分类Dev

从MySQL切换到MariaDB

来自分类Dev

从MySQL切换到SQLServer:难度级别?

来自分类Dev

ADODB-从Mysql切换到Mysqli

来自分类Dev

如何在Redis中从hmset()切换到hset()?

来自分类Dev

切换到Ubuntu

来自分类Dev

使用Flask SQLAlchemy从SQLite切换到MySQL

来自分类Dev

从mysql切换到mysqli未定义变量:connect

来自分类Dev

从mySQL切换到mariaDB时间戳消息

来自分类Dev

将大型网站从MySQL切换到MySQLi

来自分类Dev

从Mockito切换到JMockit

来自分类Dev

从Windows切换到Fedora

来自分类Dev

切换到用户空间

来自分类Dev

从UbuntuGNOME切换到Ubuntu?

来自分类Dev

从ActiveAndroid切换到GreenDao

来自分类Dev

从 Jmockit 切换到 mockito

来自分类Dev

切换到正确的 iframe?

来自分类Dev

通过删除原始版本并安装新版本来切换Ubuntu版本是一个好主意吗?

来自分类Dev

将SessionStateProvidor切换到Redis会使我的Web应用非常慢

来自分类Dev

将我的网络的IP在另一个子网上切换到主网络是一个坏主意吗?

来自分类Dev

从mysql_connect切换到PDO:mysql_num_rows()期望参数1为资源

来自分类Dev

在sqlite上向南迁移失败后,我切换到MYSQL

来自分类Dev

尝试切换到(使用)数据库时的JDBC“ MySQL语法错误”

来自分类Dev

Rails 4-从SQLite切换到MySQL-无法添加外键约束

来自分类Dev

使用ASP.NET MVC,LINQ和Entity Framework从SQL Server 2008切换到MySQL

来自分类Dev

MySql表引擎从innoDB切换到NDB后性能下降

来自分类Dev

从bottle.template切换到mako

来自分类Dev

SVN从分支切换到中继

来自分类Dev

React不会切换到生产模式