0
redis-benchmark -n 1000000 -t set -q -c 1

上記のベンチマークは、1 秒あたり 19,000 のリクエストを提供します

しかし、「set」コマンドの Nodejs ベンチマークでは、1 秒あたり 10,000 リクエストしか提供されません

では、nodejs アプリの 1 秒あたり 10k リクエストと比較して、redis-benchmark が 1 秒あたり 19k リクエストを持っているのはなぜですか?

const Redis = require("ioredis");
const {
    performance
} = require('perf_hooks');

// Ready the Redis client A
const RedisAClient = new Redis({ host: "127.0.0.1", port: 6379 });

// Call our benchmarking
Benchmarking();


// Our benchmarking function
async function Benchmarking() {

    // Sleep async function
    function sleep(ms) {
        return new Promise(resolve => setTimeout(resolve, ms));
    }


    const loopNumbers = 10000;
    let processedTasks = 0;
    const WholeTime = performance.now();

    for (let i = 0; i < loopNumbers; i++) {

        // Call redis for set command
         RedisAClient.set("testing", i, function (err, reply) {

            processedTasks++;
        });

        // If it is last loop then log the benchmark
        if (i == loopNumbers - 1) {

            // Wait for the all tasks to complete
            while (processedTasks != (loopNumbers)) { await sleep(1); }

            console.log((performance.now() - WholeTime) + "ms")

        }

    }

}
4

0 に答える 0