Redis incrby и incrbyfloat, когда одновременный имеет различное значение - PullRequest
0 голосов
/ 27 ноября 2018

Я обнаружил проблему при использовании команд 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

Так почему это происходит?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...