Почему производительность клиента ioredis для сегментированного кластера redis низкая? - PullRequest
0 голосов
/ 04 апреля 2019

задержка при чтении и записи в кластер Redis очень высока, чем ожидалось, и она не согласована, когда я пытаюсь подключиться к кластеру Redis Sharded с помощью библиотеки redis nodejs под названием «ioredis».например, когда я пытаюсь прочитать и записать около 100 пар ключ-значение, это занимает около 10-15 секунд.

Я установил кластер Redis Shaded с 6 узлами (3 master и 3 slave), который настроен в облаке (SCALEWAY CLOUD). Когда я пытаюсь читать и писать через redis-cli, это довольно быстро.Я наблюдаю несоответствие только через библиотеку узлов ioredis.

var ioredis = require('ioredis');
var sync = require('sync');




var redisCluster =new ioredis.Cluster([
          {
            host:"redis-server-1",
            port:6379
          },
          {
            host:"redis-server-2",
            port:6379
          },
          {
            host:"redis-server-3",
            port:6379
          },
          {
            host:"redis-server-4",
            port:6379
          },
          {
          host:"redis-server-5",
          port:6379
        },
        {
          host:"redis-server-6",
          port:6379
          }
        ]);


var startDate = new Date();
var total = 0;
//var total2 = 0;
for(var i = 0;i<10000;i++){
redisCluster.set("fookar"+i,"barkar"+i,function(err,res){
if(err){
console.log(err);
}
else{
var endDate   = new Date();
var seconds = (endDate.getTime() - startDate.getTime()) / 1000;
total = total+seconds;
startDate = endDate;
console.log(total+"set");
}
});
}

for(var i = 0;i<10000;i++){
redisCluster.get("fookar"+i,function(err,res){
if(err){
console.log(err);
}
else{
var endDate2   = new Date();
var seconds = (endDate2.getTime() - startDate.getTime()) / 1000;
total = total+seconds;
startDate = endDate2;
console.log(total+"get");
}
});
}

Я ожидаю, что задержка будет в миллисекундах, поскольку она может обрабатывать миллионы транзакций в секунду.Это нормальное поведение, так как будут перенаправления на сервер, где ключ должен быть прочитан или записан, или мне нужно что-то настроить?

...