Подтвердить что ты не робот

Redis настроен на сохранение снимков RDB, но в настоящее время он не может сохраняться на диске

Я получаю следующую ошибку, всякий раз, когда я выполняю любые команды, которые изменяют данные в redis

Redis is configured to save RDB snapshots, but is currently not able to persist on disk.
Commands that may modify the data set are disabled. 
Please check Redis logs for details about the error.

Я установил redis с помощью brew на mac. Как я могу получить местоположение файлов журнала, в которых информация о журналах redis-server. Я пробовал искать redis conf. файл, но не смог найти его.

Что такое местоположение по умолчанию [1] redis conf file [2] redis log file.

Как избавиться от вышеуказанной ошибки и иметь возможность выполнять команды, которые изменяют данные в redis.

4b9b3361

Ответ 1

При установке с помощью brew для файла журнала устанавливается значение stdout. Вам нужно отредактировать /usr/local/etc/redis.conf и изменить файл журнала на что-то еще. Я назначил свою команду:

logfile /var/log/redis-server.log

Вы также убедитесь, что у пользователя, выполняющего redis, есть права на запись в файл журнала, иначе redis просто не сможет запустить полностью. Затем просто перезапустите redis:

brew services restart redis

После перезапуска потребуется некоторое время, чтобы ошибка появлялась в журналах, потому что это происходит после того, как redis не выполнил свои временные сбросы. Вы должны видеть что-то вроде:

[7051] 29 Dec 02:37:47.164 # Background saving error
[7051] 29 Dec 02:37:53.009 * 10 changes in 300 seconds. Saving...
[7051] 29 Dec 02:37:53.010 * Background saving started by pid 7274
[7274] 29 Dec 02:37:53.010 # Failed opening .rdb for saving: Permission denied

После установки brew он пытается сохранить значение /usr/local/var/db/redis/, и поскольку redis, вероятно, работает как ваш текущий пользователь, а не root, он не может писать на него. Если у redis есть разрешение на запись в каталог, ваш файл журнала скажет:

[7051] 29 Dec 03:08:59.098 * 1 changes in 900 seconds. Saving...
[7051] 29 Dec 03:08:59.098 * Background saving started by pid 8833
[8833] 29 Dec 03:08:59.099 * DB saved on disk
[7051] 29 Dec 03:08:59.200 * Background saving terminated with success

и ошибка stop-writes-on-bgsave-error больше не будет поднята.

Ответ 2

Обычно это ограничение разрешений. В моем случае это redis отключает параметры записи.

Вы можете попробовать запустить redis-cli в оболочке, а затем запустить следующую команду:

set stop-writes-on-bgsave-error yes

Ответ 3

Так что, я думаю, немного поздно добавить ответ здесь, но так как я задавался вопросом о вашем вопросе, поскольку у меня была такая же ошибка. Я решил его решить, изменив мою переменную redis.conf dir следующим образом:

# The filename where to dump the DB
dbfilename dump.rdb

# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
# 
# The Append Only File will also be created inside this directory.
# 
# Note that you must specify a directory here, not a file name.
dir /root/path/to/dir/with/write/access/

Значение по умолчанию:./, поэтому в зависимости от того, как вы запускаете свой сервер redis, вы не сможете сохранять снимки.

Надеюсь, это поможет кому-то!

Ответ 4

Проверьте следующие места:

/usr/local/Cellar/redis...
/usr/local/var/log/redis.log
/usr/local/etc/redis.conf

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

Ответ 5

В моем случае я решил эту проблему с нижеследующими шагами

Причина: По умолчанию redis сохраняет данные @./, и если redis работает с пользователем redis, это означает, что redis не сможет записать данные в./ файле, тогда вы столкнетесь с ошибкой.

Разрешение: Шаг №1 (введите допустимое место, где redis может выполнять операции записи) root @fpe:/var/lib/redis # vim/etc/redis/redis.conf

dir/var/lib/redis # (Это место должно иметь право для пользователя redis для записи)

Шаг # 2 (Подключитесь к redis cli и каталогу карты, чтобы написать и опубликовать ниже переменную)

127.0.0.1:6379 > CONFIG SET dir "/var/lib/redis"

127.0.0.1:6379 > BGSAVE -

Это позволит redis записывать данные в файл дампа.