gpt4 book ai didi

cakephp - 用于 cakePHP 应用程序的 Redis

转载 作者:IT王子 更新时间:2023-10-29 06:01:08 25 4
gpt4 key购买 nike

我想开始一个大型的 cakePHP 项目,其中性能将是一个问题。我将有一个用户表,其中包含行为树行为和许多与用户相关的财务数据。该应用程序将生成大量动态报告,聚合不同树节点等的数据。

因为有关于 github一个易于使用的库,它将模型的数据源设置为 redis,我想知道将它用于整个应用程序是否是个好主意?有没有人有这方面的经验,如果我决定依赖 Redis 作为主要/唯一的数据存储,可能会出现什么潜在问题?

编辑:我已经安装了 redis 并尝试将 RedisModel 用于具有简单关系 HasMany/BelongsTo 的两个模型。当我尝试简单地使用像标准 AppModels 这样的模型时 - 它根本无法工作(Redis 错误:缺少 key )。显然你不能以标准方式使用 Model->find Model->save 等。您必须改用 redis 方法(setKeyValue 等)。这意味着分页和其他 cakePHP future 也将不起作用。所以也许对我所有的模型都使用 redisModel 不是最好的主意......

最佳答案

我不能具体代表 CakePHP,但我会一般性地谈论 redis,并特别讨论您问题的要点,它最终应该适用于您选择的框架。让我们看看:

  • 你提到你想启动一个性能成为问题的应用程序——我只是想提一下你应该小心假设你会需要一个 nosql 解决方案,因为这很难事先评估。 Redis 非常快,但事实证明,例如 MySQL 能够很好地处理数百万条记录和操作,前提是正确配置和使用它,如果您需要大量关系结构,它会简单得多。

    <
  • 关于 Redis 作为主要且唯一的数据存储:

    • Redis 非常稳定,可以胜任这项工作。 Instagram的据报道stored 300 million key-value pairs伪分片使用散列效果很好,虽然它不是唯一的数据他们使用的存储系统,这表明redis非常可靠。这个网站 (Stack Overflow) uses redis也广泛用于缓存目的。

    • Redis 也是reported平均拥有出色的整体连续正常运行时间(考虑到以上几点,这不足为奇)

    • 存在缓解停机问题的选项,replication在某种程度上得到支持,并且Redis Cluster即将推出以支持适当的分布式方法。

    • 你可能面临的主要问题是没有正确理解它是如何运作的坚持工作。你绝对应该阅读 thisthis开始之前的文章,因为这一点很重要。简而言之,redis 不会立即将更改写入磁盘,这意味着根据您的配置,崩溃可能导致自上次磁盘写入后几秒到几分钟不等的数据丢失。根据您的用例,这可能是问题,也可能不是问题;如果数据非常敏感(例如,财务记录),您可能需要在转用 Redis 之前三思而后行,或者构建一个不单独使用 Redis 而是与另一个存储系统结合使用的系统。

  • 像 Redis 这样的非关系数据存储中的关系结构意味着需要做更多的工作并且经常复制/非规范化数据。可以做到,但需要考虑;在你的问题中你提到你需要聚合数据以生成动态报告,你确定要为此使用 redis 吗?听起来关系数据库可以以非常小的性能成本为您提供更大的灵 active 。如果您事先知道您需要对数据运行复杂的查询,那么最好不要重新发明轮子,除非您绝对需要。

我的建议是首先更好地了解 Redis 是什么以及它是如何工作的,可能会构建自己的模型而不是依赖他人来更好地理解可以做什么和不能做什么,然后从那里评估你想在哪里做拿着。 Redis 足够可靠,可以独立使用,但归根结底,明智的做法是为正确的工作使用正确的工具,你可能会发现你的应用程序的某些部分与 Redis 配合得很好,而另一些则更适合更传统的存储系统。

关于cakephp - 用于 cakePHP 应用程序的 Redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12535049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com