Redis пишет медленнее - PullRequest
       44

Redis пишет медленнее

0 голосов
/ 27 сентября 2018

У меня есть 6 экземпляров кластера Redis, работающих на 2 виртуальных машинах (3 главных и 3 подчиненных).Я пытаюсь загрузить все свои ключи каждую ночь, что составляет около 0,5 миллиарда ключей на 1 миллиард ключей.веб-приложение выполняет вычисления и загружает эти значения каждую ночь.Моя загрузка намного быстрее, поскольку написание занимает много времени.Для обновления 10000 ключей требуется ч / б 6 - 10 секунд.Я боюсь, что ночная загрузка не завершится вовремя для пользователей, регистрирующихся утром.

ниже - моя конфигурация кластера.

кластер включен да

cluster-config-file node.conf

Тайм-аут кластерного узла 5000

фактор достоверности кластера-подчиненного 1

logfile redis.log

уведомление об уровне журнала

slowlog-log-slower-than 10000

slowlog-max-len 64

порог задержки монитора 100

maxmemory 2048mb

maxmemory-policy volatile-ttl

ведомое-только для чтения да

сохранить 900 1

сохранить 300 10

сохранить 60 10000

stop-write-on-bgsave-error yes rdbchecksum yes dbfilename имя dump.rdb

appendonly нет daemonize да

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Я использовал конвейерные команды, которые помогли улучшить производительность.вставил мой код ниже для обработки 10000 команд за одно выполнение.

private void saveMulti (Map cacheableMap) {this.redisResultTemplate.executePipelined (new RedisCallback () {@Override открытый объект doInRedis (подключение RedisConnection) выдает DataAccessException {StringRedisConnection stringRedisConn = (StringRed) для (StringRed);cacheableMap.keySet ()) {
stringRedisConn.set (ключ, cacheableMap.get (ключ));} return null;}});}

0 голосов
/ 29 сентября 2018

Причина, по которой запись выполняется очень медленно, вероятно, связана с тем, как настроено ваше сохранение в Redis.С текущими настройками Redis будет создавать снимок вашего набора данных каждую минуту.Я попытался бы протестировать тот же импорт на тестовом кластере без строк конфигурации "save YX" и сравнить его.

...