【问题标题】:Using PHP, MySQL and Redis使用 PHP、MySQL 和 Redis
【发布时间】:2012-09-24 15:53:28
【问题描述】:

我正在尝试了解如何以一种好的方式缓存数据库以及该做什么和不该做什么。虽然我想确保到目前为止我已经正确理解了所有内容。或许你能帮帮我?

目前我没有任何缓存,我使用 XAMPP 在本地完成所有操作。为了存储数据,我使用 MySQL/PHPMyAdmin,为了获取、添加和更新数据,我只需在 PHP 中进行 Mysqli 查询。正如我所说,我现在没有任何缓存,所以我开始寻找最好的方法来做到这一点。

经过快速搜索,我找到了Redis。所以我的想法是使用 MySQL 存储数据并使用 Redis 将其缓存。这是一个好方法还是我完全理解错了?

如果我是对的,我该如何实现 Redis?如何缓存数据?如果我想要的数据被缓存,我是否在 PHP 中进行检查,如果是则从缓存中获取,否则从 MySQL 数据库中获取。

真的很想知道我是否走在正确的轨道上。

【问题讨论】:

    标签: database caching redis


    【解决方案1】:

    Redis 是一个开源数据结构服务器,具有内存数据集,由于其内置的数据类型,它的功能远不止简单的键/值存储。

    如果您的要求是缓存批量数据,您可以这样做,这里有一个quick tutor

    如果你只是想实现缓存可以使用memcache

    memcache 适合存储返回小数据集的慢查询 [1 - 50 个结果,取决于平均行权重]

    对于任何返回大型数据集 [100 - ∞,取决于平均行权重]的查询,memcache 的效率都不是很高]

    这里有一些链接,您可以在其中找到有关 memcache 的更多信息

    Memcache introduction

    using memcache with php and mysql

    还有,最后但并非最不重要的一点

    Mysql 也会缓存查询的结果,请问你可以增加 mysql 的查询缓存大小吗?或者将大查询的结果缓存在一个独立的表中。

    关于 Mysql 查询缓存的更多信息在许多 SO 帖子中提供,但我觉得最好的一篇是这里的一篇

    Mysql query caching

    上面的 SO 帖子可能会对您有所帮助

    【讨论】:

    • 好吧,也许 MySQL 的缓存是目前要走的路。但是我如何看到 MySQL 正在使用缓存,我在哪里增加查询缓存大小和类似的东西?
    猜你喜欢
    • 1970-01-01
    • 2016-12-06
    • 2014-07-24
    • 2013-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-10
    • 1970-01-01
    相关资源
    最近更新 更多