2012-01-11 4 views
0

Здравствуйте, я хотел бы задать вам два вопроса. (Я использую java и jedis)Как может redis сбрасывать несколько файлов, но не только?

  1. Я хочу написать данные 2G для redis, как я могу писать быстрее?
  2. Передает ли redis данные нескольким файлам, а не только dump.rdb? Например, данные слишком велики, как 4G, данные будут сбрасываться на dump.rdb и dump2.rdb?

ответ

0

Вы можете быстрее импортировать данные в Redis, используя команды переменных параметров (например, MSET) и/или используя конвейерную обработку (поддерживаемую Jedis) для агрегирования обращений к экземпляру Redis. Чем меньше обращений, тем быстрее импорт.

Другая полезная практика - деактивировать AOF (если она активирована) и дамп фона RDB (если он активирован) во время операции импорта (и активировать их после).

Redis не может сбрасывать несколько файлов данных. Но если вы пишете 2 ГБ данных в Redis, нет никакого способа, чтобы файл дампа мог принимать 4 ГБ. Файл дампа всегда намного компактнее, чем данные в памяти. Единственный способ получить несколько файлов дампов - запустить несколько экземпляров Redis и очертить данные.

+0

Я установил redis maxmemory как 1KB, и когда я импортирую 10 000 000 datas для redis, dump.rdb - 293MB.then, я продолжал импортировать 10 000 000 datas для redis, dump.rdb все еще 293MB. Тем не менее, я просто мог получить все данные, которые я импортировал. Итак, где хранилось 20 000 000 данных? Я так озадачен! – user1108986

+0

И вторая проблема. Если я установил maxmemory как 1GB. И я хочу написать 1000GB данных в redis.What произойдет? – user1108986

+0

Поведение также зависит от параметра maxmemory-policy. По умолчанию используется volatile-lru, но, возможно, вы его изменили. Если вы установите 1 ГБ в maxmemory, с политикой volatile-lru, Redis начнет отклонять ваши операции записи после того, как будет сохранено 1 ГБ данных. Redis - это хранилище в памяти. Если вы хотите хранить больше данных, чем у вас есть память, используйте что-то еще. –