gpt4 book ai didi

php - Laravel 7:MariaDB与Redis结合使用,但是Redis在大型对象上的运行速度较慢

转载 作者:行者123 更新时间:2023-12-03 06:41:11 25 4
gpt4 key购买 nike

我已经成功实现了redis和mysql的组合。在我的应用程序的一部分中,我以为我会减少mysql服务器的负载并使用redis直到数据被更改,但是我观察到从Mysql提取相同的数据比redis仍然要快。

这是场景。

User1:10,000条记录在一天左右的时间内很少更改。

我要做的是获取这些10K记录的整个对象(大小约为20mb的序列化对象)保存到redis。这样做的想法是,由于随后的100到1000个请求仅是页面刷新,所以为什么不避免mysql命中并从redis获取此数据。

但是,我已经观察到,当从Redis获取此对象时,它比刷新刷新Redis和命中mysql查询要花费更多时间。我以为redis会更快,或者至少具有相同的类似mysql的速度,但是这里有所不同。

另外,我已经观察到,从Redis获取20mb对象时,我的php给出了“允许内存耗尽”错误(我知道如何解决),但是当从mysql获取相同数据时,它并没有给出任何错误。

难道Redis不适合缓存大型对象?还是还有别的东西?

谢谢

最佳答案

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

benchmark documentation中所述;

Speed of RAM and memory bandwidth seem less critical for global performance especially for small objects. For large objects (>10 KB), it may become noticeable though. Usually, it is not really cost-effective to buy expensive fast memory modules to optimize Redis.



您可能要做的是,根据应用程序的查询要求,使用 hasheslists重新设计缓存层。您可以检查 here以获取其他信息。我也在 here中回答了类似的问题

关于php - Laravel 7:MariaDB与Redis结合使用,但是Redis在大型对象上的运行速度较慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62447931/

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