我正在尝试加载预定义的电子邮件消息以发送 - 我的问题是,我应该将所有电子邮件消息都存储在memcache中,而不仅仅是包含电子邮件消息变量的文件,并且只调用一次,比如每天一次吗?
如果你需要在不同的进程/请求中进行大量读取,那么Memcache非常方便。如果你是在批处理中进行大量读取,那么就不要使用Memcache。
本地包含(local include)非常快,如果你经常访问该文件,操作系统甚至会为你缓存该文件,从而有效地从内存中读取它。没有测试无法确定,但我认为最大的速度提升应该是将文件放入opcode缓存(例如APC):原生格式和内存中。
然而,如果你正在发送邮件,我会感到惊讶如果文件包含是你代码的瓶颈,特别是如果你很清楚优化规则#1:不要解决不存在的性能问题。
这是一个非常难回答的问题,因为涉及到很多变量。
如果数据请求很多(我指每秒钟多于1或2个请求),那么Memcache会更适合...
您的驱动器性能高吗(SCSI或SAS,RAID 0或10)? 如果是这样,文件可能更适合。
您的RAM很多吗? 如果是这样,操作系统可以缓存更多的文件数据,因此对于文件将需要更少的驱动器活动。
您有很多这些预定义的邮件吗? 如果是这样,Memcache的索引可能会有所不同...
您的Memcache服务器是否仅在本地主机上? 如果不是,由于网络延迟,Memcache将失去一点。
底线是:除非您要进行大量查询(每秒钟多次查询),否则两种方法都一样快(在10到20毫秒内)。 就个人而言,除非您每秒钟执行超过约10个电子邮件查询,请坚持使用文件方法。 它更容易维护(如果需要重新启动Memcache,则无需担心刷新Memcache),并且更易于调试。 记住:保持简单...