【问题标题】:Using redis in front of MySQLMySQL前面使用redis
【发布时间】:2019-09-10 12:50:51
【问题描述】:

我们有一个大小为 4TB 的 mysql 数据库。它有大约 3000 个表,其中很少有大小为 200-300GB 的表。 有时在这些较大的表上查询需要超过 60 到 100 秒。

Java 应用程序将数据加载到此数据库中。另一个基于 Java spring 的 web 应用程序搜索这个数据库。所以这个 web 应用程序只使用选择查询。

我计划在 web 应用程序和 MySQL 之间使用 redis 数据库来改进选择查询,从而提高 web 应用程序的性能。

最初计划一次性迁移到 redis,然后编辑 Java 应用程序以将数据插入 MySQL 和 redis。

我可以在这个用例中使用 redis 吗?如果有任何其他想法,请告诉我。 按照 MySQL DBA 的要求,它已被最大限度地调整。

由于基础设施方面的挑战,我们无法在数据库方面进行太多更改。我只能尝试与软件相关的更改

【问题讨论】:

  • 最好在 StackOverflow 上询问。我对 Java 代码和数据库查询的经验是,它们通常由框架生成,即使它们通常很好,它们也很少是最优的(并且有一些病态的情况)。
  • 这个问题太宽泛了,把任务混为一谈了。它可能应该已经迁移到Database Administrators Stack Exchange,在那里您可以讨论概念和设计。将您的问题分为(1)Redis的安装和配置; (2) 你为 Redis 编写的任何代码。在其他地方问问题(1);在这里问问题(2)。在您遇到真正具体的问题之前,堆栈溢出无法帮助解决 (2)。另见How to create a Minimal, Complete, and Verifiable example
  • Redis 适合“缓存”数据。它不会取代 DBMS 及其复杂的查询语言。你的问题确实太宽泛了——MySQL 本身也有一些缓存,用于重复查询。一分钟回复一个问题似乎很长;但也许你首先有一些索引问题......但这取决于很多因素;没有更多的细节,很难给出去的方向。

标签: linux mysql redis


【解决方案1】:

这取决于您的 Web 应用程序中的数据模型。 如果只是 k/v 加载,你可以选择 Memcached,否则你可以选择 Redis。

【讨论】:

    猜你喜欢
    • 2012-09-24
    • 2016-01-24
    • 2011-07-20
    • 2018-05-03
    • 2013-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-06
    相关资源
    最近更新 更多