我最近读过代代缓存,并提出了一个体面的机制来自动缓存查询在我的应用程序.我现在的问题是,对于似乎是逻辑选择的两个选项,我遇到了大小限制. WinCache限制您总共85MB,这不会削减它,memcached将一个项目限制为1MB,如果您有一个查询返回相当大量的记录并且有很多的话,似乎不是很多的领域.好的,确切地说,似乎memcached现在允许你设置一个更大的大小,但事实上,它是1MB默认情况下,只允许这让我质疑我正在努力做什么.
我的网格允许一次返回的最大记录数为1000个记录,这是可以存储在缓存中的最大记录数(当然,每个记录的字段有所不同).我知道大量的用户可能意味着缓存会很快填满,但并发用户的数量通常不是很大,从我读过来看,如果memcached的内存不足,那么它将会摆脱最旧的缓存的项目,所以我没有看到一个大的缺点,存储更大的数据集,除非操作非常昂贵,但从我所看到的似乎不是这样.
总而言之,我想知道的是,如果在memcached中存储更大的数据集是一个坏主意(并且被授权,我知道我不想在那里存储一个百万条记录的查询).如果这是一个坏主意,那么在检索这些数据集时,缓存/提高性能的好选择是什么?
如果可能的话,使用本地的进程缓存解决方案,如APC(u)或YAC(YAC是非常聪明的软件,可能不稳定).
当APC(u)或wincache实际上将数组和标量复制到共享存储器中时,它们按位逐位执行,它们不会串行化,否则不必更改数据的格式,事实上有0个网络开销使本地缓存解决方案像APC(u)比任何像memcached或redis这样快得多.
APC(u)对段或条目的大小没有任何限制,您应该可以将其配置为使用您的操作系统允许您映射的所有内存.
当然,如果你有一个很好的理由想通过电话发送,那么这是非常无用的信息;)
原文地址:https://www.jb51.cc/php/131975.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。