【问题标题】:How do I know when it is time to switch to doing a read operation from a MySQL query to Redis?我怎么知道什么时候需要从 MySQL 查询切换到 Redis 的读取操作?
【发布时间】:2015-06-12 10:06:51
【问题描述】:

版本
我正在使用 MySQL 5.6 并考虑使用 Redis 3.0(以帮助进行越来越多样化的读取,也就是“屏幕”)。我目前使用的是单个服务器,但是如果使用 Redis,我想我最终可以在以后根据需要在更多 Redis 服务器中进行集群。

现状:
到目前为止,我在读取查询中遇到的唯一缓慢是由于需要更多索引或缓慢的 UNION。所以我添加了更多的索引,并且我小心地将一些数据压缩到单个表中,以消除大部分问题 UNION(减少了一些 JOIN,但是我仍然经常使用 JOIN,到目前为止它们都不是问题)。

问题:
我正在对我的应用程序进行重构,并且很好地分离出所有读取查询 (CQRS)。当我这样做时,我想知道现在是否是考虑用 Redis 替换许多读取查询的合适时机。这将消除我在写入的表上使用大量索引的需要(这将释放更多 RAM)。当然,我会保留用于写入的核心表,但我的数据会增长,因为现在我将为几乎每个读取查询(即 UI 屏幕/视图)创建新的 Redis 表。这反过来会占用更多的 RAM。我怎么知道什么时候开始切换到 Redis?确定或为此做准备的程序是什么?显然我不想犯“过早的优化”,但我不想避免缓存,它稍后会回来咬我。我希望答案不是“当一切都变慢时做点什么”,但我不想强迫自己过早地需要额外的 Redis 集群服务器(通过使用所有添加的 Redis 非规范化数据耗尽当前服务器上的所有 RAM )。

【问题讨论】:

  • 将您的读取查询移动到 Redis 可能是一项艰巨的工作,但如果您期望增长和性能需求,那么 imo 越早越好。另外,不要在同一台服务器上运行 MySQL 和 Redis 数据库——这样做肯定会遇到麻烦。
  • 好的,看来答案是确保我已准备好用来自另一台服务器上的 Redis 的调用替换我的查询。我想我必须找到一种方法来监控 MySQL 的性能,当我觉得是时候停止添加 RAM 而是添加第二台服务器时,Redis 会有所帮助。
  • @ItamarHaber 您可以将所有这些都放入答案中,我可以接受。谢谢
  • 很酷,但如果这是一个答案,我觉得我欠你更多信息,所以请随时扩展你的问题:)

标签: mysql caching redis


【解决方案1】:

将您的读取查询转移到 Redis 可能不是一件容易的事,但如果您期望增长和性能需求,那么 imo 越早越好。

另外,不要在同一台服务器上运行 MySQL 和 Redis 数据库 - 这样做肯定会遇到麻烦。

【讨论】:

    猜你喜欢
    • 2022-11-09
    • 2021-11-14
    • 2010-10-07
    • 2016-08-07
    • 1970-01-01
    • 2011-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多