Я обнаружил проблему при использовании команд redis incrBy и incrByFloat.Когда я использую команду incrBy, используя 300000 потоков, чтобы добавить 1 к ключу, я обнаружил, что результатом всегда будет 300000
for (int i = 0; i < 30; i++) {
new Thread() {
@Override
public void run() {
for (int j = 0; j < 10000; j++) {
redisClient.incrBy(SHARE_POOL_KEY, 1);
}
}
}.start();
}
incrby result
, но когда я использую incrbyFloat,результат другой,
for (int i = 0; i < 30; i++) {
new Thread() {
@Override
public void run() {
for (int j = 0; j < 10000; j++) {
redisClient.incrByFloat(SHARE_POOL_KEY, 1);
}
}
}.start();
}
incrybyFloat result
Так почему это происходит?