0

我在 memcached 中有一些价值,例如 500,000。当我尝试使用其键获取特定值并使用其 get 方法时。它需要随机时间,如 20 毫秒、5 毫秒等。有时大约 500 毫秒。

memcached 这么慢吗?或者有什么方法可以提高它的性能?我通过以下方式测试时间。在获取值之前和获取值之后,我以毫秒为单位打印了系统时间。

 System.currentTimeMillis();
 memcachedClient.get("key");
 System.currentTimeMillis(); 

如果我在 memcached 中设置一些值并尝试在同一次运行中从它们中获取值。那么我将获得更多时间。但如果我单独完成这些任务,我将获得更少的时间来获取。为什么?

4

1 回答 1

0

不,它没有那么慢。这仅取决于您的系统是如何设置的。

第一个问题是:你的内存缓存在哪里?它是本地 memcached(在与执行此 java 代码的同一台机器上)还是远程 memcached?如果它是远程的,那么您需要知道您的盒子和远程盒子之间的延迟是多少(虽然 500 毫秒很多)。此外,在执行 java 的机器上还运行什么,在运行 memcached 的机器上还运行什么?

memcached 速度很快,所以这是您的配置问题...如果您希望我们帮助您,您需要调查并提供更多信息。

此外,当您使用外部库(此处为 spymemcached)时,请提供其版本(我假设为 2.8.12)。有时,特定版本存在已知问题(但这里不会出现这种情况)。

于 2013-08-19T05:05:23.883 回答