Това означава ли, че на практика получавам резервни копия на всеки 60 секунди?
НЕ . Redis прави фоново записване след 60 секунди, ако има променени поне 10 000 ключа . В противен случай не прави фоново записване.
Използването на appendonly on и appendfsync everysec ще доведе ли до понижаване на производителността? Ще удари ли процесора? Натоварването при запис е високо.
Зависи от много неща, напр. производителност на диска (SSD VS HDD), натоварване при запис/четене (QPS), модел на данни и т.н. Трябва да направите сравнителен анализ със собствените си данни във вашата конкретна среда.
След като рестартирам Redis сървъра с тези нови настройки, пак ще загубя последните 60 секунди от данните си, нали?
НЕ . Ако включите и AOF, и RDB, когато Redis се рестартира, AOF файлът ще се използва за повторно изграждане на базата данни. Тъй като го конфигурирате на appendfsync everysec
, ще загубите само последната 1 секунда от данни.
Има ли повод за притеснение за времето за рестартиране? Моят файл dump.rdb е малък; ~90MB.
Ако включите AOF и когато Redis се рестартира, той възпроизвежда регистрационни файлове в AOF файла, за да изгради отново базата данни. Обикновено AOF файлът е по-голям от RDB файла и може да е по-бавен от възстановяването от RDB файл. Трябва ли да се тревожите за това? Направете бенчмарк със собствените си данни във вашата конкретна среда.
РЕДАКТИРАНЕ
ВАЖНО ЗАБЕЛЕЖКА
Да приемем, че вече сте настроили Redis да използва RDB запазване и записвате много данни в Redis. След известно време искате да включите запазването на AOF. НИКОГА НЕ ПРОМЕНЯЙ КОНФИГУРАЦИОННИЯ ФАЙЛ, ЗА ДА ВКЛЮЧИТЕ AOF И РЕСТАРТАЙТЕ REDIS, В противен случай ЩЕ ИЗГУБИТЕ ВСИЧКО .
Защото след като зададете appendonly yes
в redis.conf и рестартирайте Redis, той ще зареди данни от AOF файл, без значение дали файлът съществува или не. Ако файлът не съществува, той създава празен файл и се опитва да зареди данни от този празен файл. Така ще загубите всичко.
Всъщност не е нужно да рестартирате Redis, за да включите AOF. Вместо това можете да използвате config set
команда, за да го включите динамично:config set appendonly yes
.