У меня есть кластер Redis с 3 мастерами и 3 подчиненными. Я могу добавить данные в кластер и получить данные обратно, без проблем.
Проблема возникает, когда данные сохраняются на главном узле. Через некоторое время мастер перезапустится (см. Вывод ниже), а затем данные, которые он хранит, будут потеряны. Если кластер решает использовать ведомое устройство для хранения данных, то данные сохраняются до тех пор, пока не будет достигнут ttl.
Когда происходит перезапуск, в журналах выводятся следующие данные:
30580:signal-handler (1479922724) Received SIGTERM scheduling shutdown...
30580:M 23 Nov 17:38:44.544 # User requested shutdown...
30580:M 23 Nov 17:38:44.545 * Calling fsync() on the AOF file.
30580:M 23 Nov 17:38:44.545 * Saving the final RDB snapshot before exiting.
30580:M 23 Nov 17:38:44.567 * DB saved on disk
30580:M 23 Nov 17:38:44.567 * Removing the pid file.
30580:M 23 Nov 17:38:44.567 # Redis is now ready to exit, bye bye...
30636:M 23 Nov 17:38:44.783 * Increased maximum number of open files to 10032 (it was originally set to 1024).
17513:M 23 Nov 17:31:10.552 * Node configuration loaded, I'm cd698d5a4350c161930b40c52f71e1fabeac549d
<%insert_logo_and_pid_here%>
17513:M 23 Nov 17:31:10.553 # Server started, Redis version 3.2.4
17513:M 23 Nov 17:31:10.553 * The server is now ready to accept connections on port 6379
17513:M 23 Nov 17:31:11.404 * Slave <%ip%>:6379 asks for synchronization
17513:M 23 Nov 17:31:11.404 * Full resync requested by slave <%ip%>:6379
17513:M 23 Nov 17:31:11.404 * Starting BGSAVE for SYNC with target: disk
17513:M 23 Nov 17:31:11.405 * Background saving started by pid 17518
17518:C 23 Nov 17:31:11.418 * DB saved on disk
17518:C 23 Nov 17:31:11.418 * RDB: 0 MB of memory used by copy-on-write
17513:M 23 Nov 17:31:11.455 * Background saving terminated with success
17513:M 23 Nov 17:31:11.455 * Synchronization with slave <%ip%>:6379 succeeded
17513:M 23 Nov 17:31:12.557 # Cluster state changed: ok
Я не уверен, что это его убивает или он сам себя сохраняет и перезапускает? Я вижу, что есть sigterm и пользователь запросил выключение, но я ничего подобного не делал.
Кроме того, вы заметите разницу в номерах строк, потому что я скопировал ее из другого экземпляра Redis и не удосужился его изменить.
Сервер, на котором он запущен, - это Centos 7, Redis версии 3.2.4.
Любая помощь будет принята с благодарностью, заранее спасибо.
Прочитав множество статей, в которых говорится, что в Centos 7 daemonize yes
нужно было закомментировать, я, наконец, попытался просто оставить это как да. Это мгновенно устранило проблему, и экземпляр Redis больше не перезапускается.