【问题标题】:MemcachedClient Performance using its get methodMemcachedClient 性能使用它的 get 方法
【发布时间】:2013-08-19 04:46:59
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: java memcached spymemcached


    【解决方案1】:

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

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

    memcached 速度很快,因此您的配置存在问题...如果您希望我们为您提供帮助,您需要进行调查并提供更多信息。

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

    【讨论】:

    • 我正在本地系统本身上执行我的 java 代码,并且 memcached 也在本地系统上。我在安装时为 memcached 分配了 1Gb。刚才我已经关闭了系统上运行的所有其他应用程序并运行测试。现在我得到大约 10 毫秒的值。但不是特定的值。
    • 请帮助您了解从缓存中获取值所需的时间(以毫秒为单位)。
    • 是否总是需要随机时间值才能从缓存中获取值?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多