gpt4 book ai didi

memcached - 将 'incr' 与 spymemcached 客户端一起使用

转载 作者:行者123 更新时间:2023-12-04 23:25:52 26 4
gpt4 key购买 nike

我正在尝试使用 spymemcached-2.8.4 客户端在 memcached 中设置一个非常基本的命中率监视器,但是存储在 memcached 中的值实际上似乎从未增加过......这是一个错误还是我遗漏了什么?

public static void checkHitRate(String clientId) throws FatalException, ForbiddenException {
MemcachedClient memcachedClient;
try {
memcachedClient = new MemcachedClient(new InetSocketAddress("localhost", 11211));

Integer hitRate = (Integer) memcachedClient.get(clientId);

if (hitRate == null) {
memcachedClient.set(clientId, 1800, 1);
} else if (hitRate > 500) {
throw new ForbiddenException("Hit rate too high. Try again later");
} else if (hitRate <= 500) {
memcachedClient.incr(clientId, 1);
}

} catch (IOException e) {
throw new FatalException("Could not read hit rate from Memcached.");
}
}

我知道它在 memcached 中是可能的:

(TELENT 输出)
set clientId_1 0 200 1
1
STORED
incr clientId_1 1
2
get clientId_1
VALUE clientId_1 0 1
2
END

最佳答案

对于 incr/decr memcached 服务器将存储的值视为整数的字符串表示,

添加一个项目,如

    memcachedClient.set(clientId, 1800, 1);

将值添加为整数,这就是 memcached 无法增加它的原因。


    memcachedClient.set(clientId, 1800, "1");

反而。它会根据您的需要工作。

关于memcached - 将 'incr' 与 spymemcached 客户端一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13077324/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com