首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 7: MariaDB与Redis相结合,但Redis对大型对象的行为较慢

问Laravel 7: MariaDB与Redis相结合,但Redis对大型对象的行为较慢
EN

Stack Overflow用户
提问于 2020-06-18 10:30:25
回答 1查看 747关注 0票数 1

我已经成功地实现了redis和mysql的结合。在我的应用程序的某个部分,我认为我可以减少mysql服务器上的负载,并使用redis,直到数据被更改为止,但是我观察到,从Mysql获取相同的数据比从redis获取数据还要快。

这是一个场景。

User1: 10,000个记录,一天内很少有一次改变。

我所做的是获取这些10K记录的整个对象,(大约20 in大小的序列化对象)保存到redis中。因为随后的100到1000个请求只是页面刷新,所以为什么不避免mysql点击并从redis获取这些数据呢?

但是,我已经注意到,当从Redis获取这个对象时,它所花费的时间比我刷新redis和执行mysql查询时花费的时间要多。我原以为redis会更快,或者至少具有类似mysql的速度,但在这里它是不同的。

此外,我还观察到,当从Redis中获取20 my对象时,我的php会给出“允许内存耗尽”错误(我知道如何修复),但是当从mysql获取相同的数据时,它不会发出任何错误。

难道Redis不适合缓存巨大的对象吗?或者还有别的什么吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-18 10:42:27

Redis不是为存储/获取大型对象而设计的。在网络/带宽中获取/设置这些对象时,您将受到影响。由于它是单线程的,其他请求在存储/获取这些大型对象时也会受到影响。

正如基准文件中所述;

RAM的速度和内存带宽似乎对全局性能不太重要,特别是对于小型对象。不过,对于large objects (>10 KB)来说,它可能会变得引人注目。通常,购买昂贵的快速内存模块来优化Redis并不是真正的成本效益。

您可以做的是,根据应用程序的查询要求,使用hashes或lists重新设计缓存层。您可以检查这里以获得其他信息。我还在这里中回答了一个类似的问题

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62447931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档