我正在使用PHP。我想在MySQL上存储临时数据。我还有64GB的Memcached服务器。所以,我想使用memcache服务器来存储临时数据。但我对MySQL和Memcached服务器的性能存在疑问。
在MySQL和Memcached之间存储获取临时数据的最佳,快速和可靠的方法是什么?
答案 0 :(得分:0)
答案是......这取决于。 Memcached非常快,甚至更好,你可以或多或少地为你的应用程序添加多个机器或分片到你的memcached池。 MySQL有各种存储引擎(可能还有复制),如果你需要存储数据,它可以保存你的数据。
所以这取决于你的临时数据需要“临时”的程度。考虑它的好方法是:如果您的服务器重启,您是否关心数据是否存在?
如果重新启动memcached实例,memcached分片中的数据将会消失,但访问速度通常比MySQL表中的数据快得多。 MySQL中的数据将更持久,但访问速度会更慢。
MySQL确实有内存存储引擎。与大多数其他MySQL查找相比,内存存储速度很快,如果服务器或服务重新启动,其中的数据将会消失。
如果你选择和Memcached,通常Memcached是更好的选择(虽然它总是取决于你自己的数据 - YMMV)。 MySQL内存引擎具有严格的大小限制,您需要修剪数据或冒险命中它们。使用Memcached,您可能会达到大小限制,但Memcached服务只会开始驱逐值而不是抛出错误。驱逐不是很好,但至少它们不会导致您需要处理的错误,您通常可以通过观察指标并在内容上设置适当的TTL来阻止它们。