Як вимкнути стійкість за допомогою redis?


91

Мені було цікаво, як відключити присутність в redis. Тут згадується можливість зробити це: http://redis.io/topics/persistence . Я маю на увазі це точно в тому самому сенсі, як описано там. Будь-яка допомога буде дуже вдячна!


Мені здалося дивним, якщо не дратувати, що на офіційному веб-сайті про це немає інструкцій, а в Інтернеті про це немає багато інформації (Дивіться, що stackoverflow.com/questions/19581059/ ... має набагато більше голосів і краще задокументовано, ніж це). Загалом, враховуючи, що Redis часто використовується як непостійна база даних.
Akronix

Відповіді:


111

Щоб вимкнути збереження всіх даних у Redis, виконайте у redis.confфайлі наступне :

  1. Вимкніть AOF, встановивши для appendonlyдирективи конфігурації значення no(це значення за замовчуванням). подобається це:

    appendonly no
    
  2. Вимкніть знімок RDB, коментуючи всі saveдирективи конфігурації (за замовчуванням визначено 3)

    #save 900 1
    #save 300 10
    #save 60 10000
    

Після зміни переконайтеся, що ви перезапустили Redis, щоб застосувати їх.

Крім того, ви можете використовувати CONFIG SETкоманду, щоб застосувати ці зміни під час виконання (просто переконайтеся, що ви також робите a, CONFIG REWRITEщоб зберегти зміни).

Примітка. Залежно від версії Redis існують інші налаштування, які перешкоджають доступу Redis до диска для завдань, пов’язаних із реплікацією.


1
redis> config встановити auto-aof-rewrite-процент 0
toontong

2
Я налаштував свій Redis не зберігати дані на диску, коментуючи три saveдирективи. Я бачу, що він більше не періодично робить знімки даних. Однак я все ще бачу файл .rdb, записаний на диск, коли я вимикаю свій сервер. Чи може він бути створений у будь-якому випадку, можливо, через процес відмови?
Джолта

1
Щоб насправді зробити це ефективним, ви можете скористатися переліченими тут командами, щоб зробити це за допомогою cli: stackoverflow.com/a/34736871/2904315 Або ви можете просто змінити файл redis.conf, як пояснено в цій відповіді, а потім перезапустити службу за допомогою:systemctl restart redis
Akronix

У Linux redis.confфайл розміщений у/etc/redis/redis.conf
Амін Шоджаї

77

Якщо ви хочете уникнути гри з redis.conf(середовища розробників / тестів), ви можете зробити це через командний рядок за допомогою

redis-server --save "" --appendonly no

(протестовано на сервері redis 3.2.6і 5.0.5)


1
Ви впевнені, що --appendonly noце необхідно? Чи не вимкнено за замовчуванням?
aleclarson

4
Може бути правдою. Але, звичайно, не завадить додати його туди, просто щоб бути у безпеці, ми хочемо відключити всі типи наполегливості;)
Костіс,

хм, не працювало для мене у Windows 10 у WSL (Ubuntu 16)
Джеймс

@JamesGentes в чому помилка. Він працює у моїй Fedora 29 з Redis 5.0.3, протестував зараз. Можливо, вам потрібно передати аргументи по-іншому в Windows? Що таке версія Redis? redis-server --helpможливо, міг би дати деяке розуміння
Костіс

1
Працює і на версії 5.0.5.
Аббас

18

Оскільки AOF (додатково) за замовчуванням вимкнено, для вимкнення постійності без перезапуску служби redis потрібно зробити лише одне - відключити конфігурацію збереження .

Для його відключення під час виконання та перевірки запустіть команди нижче

Перевірте поточну конфігурацію збереження

pawan@devops:~$ redis-cli config get save
1) "save"
2) "900 1 300 10 60 10000"

Те саме налаштування буде присутнє і у файлі redis.conf

pawan@devops:~$ grep -w 'save' /etc/redis/redis.conf | grep -v '#'
save 900 1
save 300 10
save 60 10000

Вимкнути конфігурацію збереження

pawan@devops:~$ redis-cli config set save ""
OK

Змініть файл redis.conf за допомогою нової конфігурації збереження, щоб конфігурація залишалася постійною при перезапуску служби redis

root@ip-172-16-3-114:~# redis-cli config rewrite
OK

Підтвердьте нову конфігурацію збереження

pawan@devops:~$ redis-cli config get save
1) "save"
2) ""

Тепер, якщо ви скануєте файл redis.conf для збереження конфігурації, результатів не буде

pawan@devops:~$ grep -w 'save' /etc/redis/redis.conf | grep -v '#'  
pawan@devops:~$

8

Для моментального знімка RDB ви можете вимкнути його за допомогою

$ sed -e '/save/ s/^#*/#/' -i /etc/redis/redis.conf && sudo service redis-server restart

Він прокоментує рядки збереження в redis.conf і перезапустить redis-сервер

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.