我怎么知道什么时候该切换到从 MySQL 查询到 Redis 的读取操作?
How do I know when it is time to switch to doing a read operation from a MySQL query to Redis?
版本:
我正在使用 MySQL 5.6 并考虑使用 Redis 3.0(以帮助处理越来越多样化的读取集,a.k.a "screens")。我目前使用的是单个服务器,但是对于 Redis,我想如果需要的话,我最终可以在更多的 Redis 服务器中集群。
现状:
到目前为止,我在读取查询中遇到的唯一缓慢是由于需要更多索引或较慢的 UNION。所以我添加了更多索引,并小心地将一些数据压缩到单个表中以消除大部分问题 UNION(减少一些 JOIN,但我仍然经常使用 JOIN,到目前为止它们不是问题)。
问题:
我正在重构我的应用程序,我很好地分离了我所有的读取查询 (CQRS)。在执行此操作时,我想知道现在是否是考虑用 Redis 替换许多读取查询的合适时机。这将消除我在写入的表上使用大量索引的需要(这将释放更多的 RAM)。当然,我会保留用于写入的核心表,但我的数据会增长,因为现在几乎每个读取查询都会有新的 Redis 表(即 UI screen/view)。这反过来会带走更多的内存。我怎么知道什么时候开始切换到 Redis?确定或为此做准备的程序是什么?显然我不想对 "premature optimization" 感到内疚,但我不想避免缓存,它稍后会回来咬我。我希望答案不是 "do something when everything slows down",但我不想强迫自己过早地需要额外的 Redis 集群服务器(通过使用所有添加的 Redis 非规范化数据耗尽当前服务器上的所有 RAM)。
将您的读取查询移动到 Redis 可能是一项非常重要的工作,但如果您期望增长和性能需求,那么越早越好。
此外,不要 运行 您的 MySQL 和 Redis 数据库在同一台服务器上 - 这样做肯定会惹上麻烦。
版本:
我正在使用 MySQL 5.6 并考虑使用 Redis 3.0(以帮助处理越来越多样化的读取集,a.k.a "screens")。我目前使用的是单个服务器,但是对于 Redis,我想如果需要的话,我最终可以在更多的 Redis 服务器中集群。
现状:
到目前为止,我在读取查询中遇到的唯一缓慢是由于需要更多索引或较慢的 UNION。所以我添加了更多索引,并小心地将一些数据压缩到单个表中以消除大部分问题 UNION(减少一些 JOIN,但我仍然经常使用 JOIN,到目前为止它们不是问题)。
问题:
我正在重构我的应用程序,我很好地分离了我所有的读取查询 (CQRS)。在执行此操作时,我想知道现在是否是考虑用 Redis 替换许多读取查询的合适时机。这将消除我在写入的表上使用大量索引的需要(这将释放更多的 RAM)。当然,我会保留用于写入的核心表,但我的数据会增长,因为现在几乎每个读取查询都会有新的 Redis 表(即 UI screen/view)。这反过来会带走更多的内存。我怎么知道什么时候开始切换到 Redis?确定或为此做准备的程序是什么?显然我不想对 "premature optimization" 感到内疚,但我不想避免缓存,它稍后会回来咬我。我希望答案不是 "do something when everything slows down",但我不想强迫自己过早地需要额外的 Redis 集群服务器(通过使用所有添加的 Redis 非规范化数据耗尽当前服务器上的所有 RAM)。
将您的读取查询移动到 Redis 可能是一项非常重要的工作,但如果您期望增长和性能需求,那么越早越好。
此外,不要 运行 您的 MySQL 和 Redis 数据库在同一台服务器上 - 这样做肯定会惹上麻烦。