我正在尝试加载预定义的电子邮件以发送出去——我的问题是,我是否应该缓存所有电子邮件,而不仅仅是包含包含电子邮件变量的文件,并且每天只调用一次或其他什么?
2 回答
Memcache 可以方便地在单独的进程/请求中进行大量读取,您是使用许多不同的进程还是批量发送?在后一种情况下,忘记 memcache。
本地包含非常快,如果您经常访问该文件,您的操作系统甚至会为您缓存该文件,从而有效地从内存中读取它。没有测试就无法判断,但我认为最大的速度提升是将文件放在操作码缓存(例如 APC)中:本机格式和内存。
再说一次,如果文件包含是您代码中的瓶颈,我会感到惊讶,特别是如果您正在邮寄。非常注意优化规则#1:不要解决不存在的性能问题。
嗯,这是一个很难回答的问题。有很多变数。
对这些数据的请求是否很多(当我说很多时,我的意思是每秒超过一两个)?如果是这样的话,Memcache 会得到一个点...
您的驱动器是否具有高性能(SCSI 或 SAS、RAID 0 或 10)?如果是这样,文件可能会得到一点。
你有很多内存吗?如果是这样,操作系统可以缓存更多的文件数据,因此文件需要更少的驱动器活动。
你有很多这些预定义的消息吗?如果是这样,Memcache 的索引可能会有所不同......
您的 Memcache 服务器是否仅在 localhost 上?否则,Memcache 将因网络延迟而失去一分。
底线是这个。除非您进行大量查找(每秒多次),否则两者都将同样快(在合理范围内,不到 10 到 20 毫秒)。就个人而言,除非您每秒进行超过 10 次 EMAIL 查找,否则请坚持使用文件方法。它更易于维护(如果需要重新启动,您不必担心刷新 Memcache),并且更易于调试。记住:保持简单...