【问题标题】:In which cases should I use caching?在哪些情况下我应该使用缓存?
【发布时间】:2016-02-19 22:35:04
【问题描述】:

我正在构建一个基于 MySQL 数据库的网站。该网站将获得大量表格、大量行和大量视图。我知道这是因为我正在为现有网站构建一个新系统。

目前的网站只使用 MySQL,没有缓存,会导致性能不佳和数据库崩溃等很多问题。

在新系统上,我想通过使用像 Redis 这样的缓存引擎来避免这种情况,但真正的问题是我不太了解应该缓存哪些数据,或者以什么方式缓存案例。

我应该缓存吗:

  • 一切?
  • 大/小桌子?
  • 所有数据/仅部分数据?

我应该如何使用缓存?

  • 将所有数据存储在 MySQL 中,只缓存部分记录? (例如:最近的文章)
  • 仅在 Redis 上存储一些数据? (例如:文章浏览量/IP 地址表)

我并不完全希望您直接回答我的问题,我只需要使用缓存的指导。

【问题讨论】:

    标签: mysql caching redis


    【解决方案1】:

    我使用apache-ignite 作为缓存,我只存储访问最多的数据,例如报告实体,在您的情况下可能是最近添加的文章(您需要对此做出决定)。

    根据您的硬件,因为 ignite 或任何缓存,将数据存储在 RAM 上,因此您在决定缓存什么时应该考虑这一方面。

    您说要存储文章,只存储最近的文章,那么您可以选择只复制创建日期早于两周前的文章。

    Ignite also provides an ORM 用于将 ignite 耦合到数据库的工具,可以通过两种方式进行配置,如果缓存更改或决定这样做时立即更新数据库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-22
      • 1970-01-01
      • 2016-03-15
      • 1970-01-01
      • 2014-07-29
      • 1970-01-01
      相关资源
      最近更新 更多