MISCONF Redis настроен на сохранение снимков RDB

366

Во время записи в Redis ( SET foo bar) я получаю следующую ошибку:

MISCONF Redis настроен для сохранения снимков RDB, но в настоящее время не может сохраняться на диске. Команды, которые могут изменить набор данных, отключены. Пожалуйста, проверьте журналы Redis для деталей об ошибке.

В основном я понимаю, что проблема в том, что Redis не может сохранять данные на диске, но не знаю, как избавиться от проблемы.

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

Сальвадор Дали
источник
Вы смогли решить эту проблему. Если да, не могли бы вы помочь с шагами. Потому что размещение файла rdb где-то еще не решит его, я думаю. Я думаю, что я что-то здесь
ankur
4
Эта ошибка возникает из-за запуска сервера Redis в каталоге, где Redis не имеет разрешений. Я рекомендую вернуться к настройкам по умолчанию после устранения проблемы: см. Ответ относительно решения этой проблемы.
Говинд Рай
В дополнение к ответу Говинд Рай: stackoverflow.com/a/47880440/5649620
Вишнав Рамеш Триссур
@GovindRai Я уже даю разрешение на редис, меняя группу и владельца redis, но это не помогает
wdetac

Ответы:

184

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

Используя redis-cli, вы можете сделать что-то вроде этого:

CONFIG SET dir /tmp/some/directory/other/than/var
CONFIG SET dbfilename temp.rdb

После этого вы можете выполнить BGSAVEкоманду, чтобы убедиться, что данные будут записаны в rdbфайл. Убедитесь, что когда вы выполняете INFO persistence, bgsave_in_progressуже есть 0и rdb_last_bgsave_statusесть ok. После этого вы можете начать резервное копирование сгенерированного rdbфайла в безопасное место.

Аксель Адвенто
источник
7
rdb_bgsave_in_progress: 0 при сохранении
thanikkal
По какой-то причине, когда я пытаюсь выполнить любую команду config set, она как будто продолжает загружаться вечно.
Башар Абдулла
5
Для тех несчастных из них , которые находятся на Windows, меня в данный момент, и стой используют версию MSOpenTech, вы должны путь набор каталогов в следующем стиле: dir C:/Temp/. Сделайте bgsave, чтобы проверить, что это работает ..
Джон П
@ Джон П, это было именно то, что нужно было сделать. Спасибо!
Сэм
2
127.0.0.1:6379> CONFIG SET реж / корень / инструмент (ошибка) ERR Изменение каталога: Доступ запрещен
Ганковской
318

Используя redis-cli, вы можете остановить его, пытаясь сохранить снимок:

config set stop-writes-on-bgsave-error no

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

思考 Чжэ
источник
21
это быстрый обходной путь, но вы должны проверить, почему bgsave потерпел неудачу на первом месте
Mandeep Singh
7
Если вы используете Redis в основном для кэширования и сессий, это обязательно.
Джим
1
Это не опасно? Например, NodeBB использует Redis в качестве хранилища данных.
codecowboy
2
Конфигурация @LoveToCode установила стоп-запись-на-bgsave-error да
Фил
4
Всякий раз, когда я перезагружаю сервер, я снова получаю ту же проблему. Тогда я должен установить это снова. Как я могу сделать это постоянным?
Зия Камар
63

Во время процесса bgsave могут быть ошибки из-за нехватки памяти. Попробуйте это (из redis background сохранить FAQ)

echo 'vm.overcommit_memory = 1' >> /etc/sysctl.conf
sysctl vm.overcommit_memory=1
Крис
источник
5
Ссылка: redis.io/topics/faq Поиск по этому поводу: «В Linux при сохранении фона происходит сбой с ошибкой fork (), даже если у меня много свободной оперативной памяти! »
Бруно Перес,
49

Эта ошибка возникает из-за сбоя BGSAVE. Во время BGSAVE Redis разветвляет дочерний процесс для сохранения данных на диске. Хотя точная причина сбоя BGSAVE может быть проверена из журналов (обычно /var/log/redis/redis-server.logна Linux-машинах), но во многих случаях BGAVE дает сбой, потому что вилка не может выделить память. Много раз форк не может выделить память (хотя у машины достаточно ОЗУ) из-за противоречивой оптимизации ОС.

Как можно прочитать из Redis FAQ :

Схема фонового сохранения Redis опирается на семантику копирования при записи в современных операционных системах: Redis разветвляется (создает дочерний процесс), который является точной копией родительского. Дочерний процесс выгружает БД на диск и, наконец, завершает работу. Теоретически ребенок должен использовать столько же памяти, сколько родительский объект, являющийся копией, но на самом деле благодаря семантике копирования при записи, реализованной большинством современных операционных систем, родительский и дочерний процессы будут совместно использовать страницы общей памяти. Страница будет продублирована только тогда, когда она изменяется в дочернем или родительском элементе. Поскольку теоретически все страницы могут изменяться во время сохранения дочернего процесса, Linux не может заранее определить, сколько памяти займет дочерний процесс, поэтому, если для параметра overcommit_memory задано нулевое значение, ветвь не будет работать, если не будет столько свободной оперативной памяти, сколько требуется действительно дублировать все родительские страницы памяти,

Установка для overcommit_memory значения 1 говорит о том, что Linux расслабляется и выполняет форк в более оптимистичном режиме распределения, и это действительно то, что вам нужно для Redis.

Redis не требуется столько памяти, сколько операционная система думает, что она делает запись на диск, поэтому может превратиться в неудачу.

Чтобы решить это, вы можете:

Изменить /etc/sysctl.confи добавить:

vm.overcommit_memory=1

Затем перезапустите sysctl с помощью:

На FreeBSD:

sudo /etc/rc.d/sysctl reload

В Linux:

sudo sysctl -p /etc/sysctl.conf
Bhindi
источник
Вывод systemctl status redisпоказал, что есть предупреждение, которое предлагает точно изменить overcommit_memory=0настройку. Изменение, которое действительно решило проблему для меня.
Абстрактный алгоритм
Это решило проблему правильно и должно быть принято
решение
Таким образом, tldr будет с настройками по умолчанию, если redis использует 10 ГБ оперативной памяти, вам нужно иметь 10 ГБ свободной памяти, чтобы этот дочерний процесс мог выполняться?
Дэн Гастингс
@DanHastings - Да. И установка overcommit_memory в 1 ослабляет это требование.
Бхинди
26

Перезагрузите ваш сервер Redis.

  • MacOS (варка) : brew services restart redis.
  • Linux: sudo service redis restart /sudo systemctl restart redis
  • Windows: Windows + R-> Тип services.msc, Enter-> Поиск, Redisзатем нажмите restart.

Я лично имел эту проблему после обновления Redis с Brew ( brew upgrade). После перезагрузки ноутбука он сразу заработал.

Erowlin
источник
Если кто -то читает это я имел проблемы с Homebrew как хорошо , но ничего общего с обновлением: Мне просто нужно , чтобы запустить службу с sudo: brew services stop redis; sudo brew services start redis.
bfontaine
24

в случае, если вы работаете на машине с linux, также перепроверьте права доступа к файлам и папкам базы данных.

БД и путь к нему можно получить через:

в redis-cli:

CONFIG GET dir

CONFIG GET dbfilename

и в командной строке ls -l. Разрешения для каталога должны быть 755 , а для файла должны быть 644 . Кроме того, обычно redis-сервер выполняется как пользователь redis, поэтому также неплохо дать пользователю redisправо владения папкой путем выполнения sudo chown -R redis:redis /path/to/rdb/folder. Это было разработано в ответе здесь .

smilee89
источник
Какие разрешения они должны быть?
стивен
Это сработало для меня. Спасибо!
Lordwhizy
19

Спасибо всем за проверку проблемы, по-видимому, ошибка возникла во время bgsave.

Для меня ввод config set stop-writes-on-bgsave-error noв оболочку и перезапуск Redis решили проблему.

Сальвадор Дали
источник
82
Это не «решило проблему», оно просто проигнорировало это.
Буффало
Перезапуск RedisServer в Services.msc работал для меня.
ViPuL5
Всякий раз, когда я перезагружаю сервер, я снова получаю ту же проблему. Тогда я должен установить это снова. Как я могу сделать это постоянным?
Зия Камар
@ZiaQamar, вы можете установить свойство постоянно в redis.conf, который , скорее всего , быть в /etc/redis/redis.conf, установите «стоп-пишет-на-bgsave-ошибки нет»
Gaurav Тяги
ИМО точно не решение проблемы. Вы просто говорите Redis не регистрировать эти ошибки. Но ошибки все еще есть ...
Erowlin
17

Запустите Redis Server в каталоге, где у Redis есть права на запись

Ответы выше определенно решат вашу проблему, но вот что на самом деле происходит:

Расположение по умолчанию для хранения rdb.dumpфайла ./(обозначает текущий каталог). Вы можете проверить это в своем redis.confфайле. Таким образом, каталог, из которого вы запускаете сервер Redis, находится вdump.rdb файл будет создан и обновлен.

Кажется, вы начали запускать сервер Redis в каталоге, где Redis не имеет правильных разрешений для создания dump.rdb файла.

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

Чтобы решить эту проблему, вы должны зайти в активную среду клиента Redis, используя redis-cliи обновив dirключ, и установить его значение в папке вашего проекта или в любой папке, для которой у пользователя без полномочий root есть права на сохранение. Затем запустите, BGSAVEчтобы вызвать создание dump.rdbфайла.

CONFIG SET dir "/hardcoded/path/to/your/project/folder"
BGSAVE

(Теперь, если вам нужно сохранить файл dump.rdb в каталоге, в котором вы запустили сервер, вам нужно будет изменить разрешения для каталога, чтобы redis мог записывать в него. Вы можете выполнить поиск в stackoverflow, как это сделать. ).

Теперь вы должны быть в состоянии завершить работу сервера Redis. Обратите внимание, что мы жестко закодировали путь. Жесткое кодирование редко является хорошей практикой, и я настоятельно рекомендую запустить сервер redis из каталога вашего проекта и изменить dir key back to. / `.

CONFIG SET dir "./"
BGSAVE

Таким образом, когда вам понадобится redis для другого проекта, файл дампа будет создан в каталоге вашего текущего проекта, а не в каталоге проекта с жестко заданным путем.

Говинд Рай
источник
Убедитесь, что вы предоставили разрешение не-root пользователю на каталог, в котором будет храниться файл дампа. В моем случае у меня есть пользователь, redisпоэтому я делаю: sudo chown redis:redis /var/lib/redis
RoundOutTooSoon
13

Если вы используете MacOS и недавно обновили до Catalina, вам может потребоваться запустить, brew services restart redisкак предложено в этом выпуске .

Fush
источник
12

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

  1. Войдите в Redis клиент
  2. Выполнить конфигурацию set stop-write-on-bgsave-error no
  3. Выполнить FLUSHALL (данные не нужны)
  4. Выполнить конфигурацию set stop-write-on-bgsave-error yes

Процесс redis-rdb-bgsave больше не выполнялся после описанных выше шагов.

RCK
источник
7

Я сталкивался с подобной проблемой, основной причиной этого было потребление памяти (RAM) redis. У моей машины EC2 было 8 ГБ оперативной памяти (около 7.4 доступно для потребления)

Когда моя программа работала, объем используемой оперативной памяти достигал 7,2 ГБ, оставляя едва ли ~ 100 МБ в ОЗУ, это обычно вызывает MISCONF Redis error ...

Вы можете определить потребление оперативной памяти с помощью htopкоманды. Найдите атрибут Mem после выполнения команды htop. Если он показывает высокое потребление (как в моем случае это было 7,2 ГБ / 7,4 ГБ), лучше обновить экземпляр с большей памятью. В этом случае использование config set stop-writes-on-bgsave-error noбудет бедствием для сервера и может привести к нарушению работы других служб на сервере (если таковые имеются). Так что лучше избегать команды config и ОБНОВЛЯТЬ СВОЮ REDIS MACHINE .

К вашему сведению: вам может понадобиться установить htop, чтобы сделать эту работу:sudo apt-get install htop

Еще одним решением этой проблемы может быть запуск какой-либо другой службы, интенсивно работающей с ОЗУ, работающей в вашей системе, проверьте, работает ли другая служба на вашем сервере / компьютере / экземпляре, и остановите ее, если в этом нет необходимости. Чтобы проверить все службы, работающие на вашем компьютере, используйтеservice --status-all

И предложение для людей, непосредственно вставляющих команду config, пожалуйста, немного пересмотрите программу и, по крайней мере, предупредите пользователя перед использованием таких команд. И как @Rodrigo упомянул в своем комментарии: «Не выглядит круто игнорировать ошибки».

---ОБНОВИТЬ---

Вы также можете настроить maxmemoryи maxmemory-policyопределить поведение Redis при достижении определенного предела памяти. Например, если я хочу сохранить ограничение памяти в 6 ГБ и удалить наименее использованные ключи из БД, чтобы убедиться, что использование redis mem не превышает 6 ГБ, тогда мы можем установить эти два параметра (в redis.conf или CONFIG SET). команды):

maxmemory 6gb
maxmemory-policy allkeys-lru

Есть много других значений, которые вы можете установить для этих двух параметров, вы можете прочитать об этом здесь: https://redis.io/topics/lru-cache

bhatman
источник
6

Более постоянное исправление может выглядеть в /etc/redis/redis.conf в строках 200-250, где есть настройки для функций rdb, которые не были частью redis в течение 2.x дней.

особенно

dir ./

можно изменить на

dir /home/someuser/redislogfiledirectory

или вы можете закомментировать все строки сохранения и не беспокоиться о сохранении. (Смотрите комментарии в /etc/redis/redis.conf)

Также не забывайте

service redis-server stop
service redis-server start
Суповая чашка
источник
6

все эти ответы не объясняют причину сбоя сохранения rdb.


в моем случае я проверил журнал redis и обнаружил:

14975: M 18 Jun 13: 23: 07.354 # Сохранение фона прекращается сигналом 9

выполните следующую команду в терминале:

sudo egrep -i -r 'killed process' /var/log/

это дисплей:

/var/log/kern.log.1: 18 июня 13:23:07 10-10-88-16 ядро: [28152358.208108] Убитый процесс 28416 (сервер redis) total-vm: 7660204kB, anon-rss: 2285492kB, файл-Новости: 0Kb

вот оно что! этот процесс (redis save rdb) убит убийцей OOM

относится:

https://github.com/antirez/redis/issues/1886

Поиск, какой процесс был убит Linux OOM Killer

carton.swing
источник
3

FWIW, я столкнулся с этим, и решение было просто добавить файл подкачки в коробку. Я использовал этот метод: https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04

Райан Энгилли
источник
Как вы узнали, что переполнение памяти было проблемой? У меня может быть та же проблема.
DarthSpeedious
@DarthSpeedious я не помню. Если бы мне пришлось угадывать, я бы сказал, что, возможно, что-то в журналах жаловалось на невозможность выделить память. Извините, я не могу быть более полезным.
Райан Ангилли
Во-первых, я подумал, что это будет отличным решением для работы с swap и redis, а затем я провел некоторое исследование и дошел до этой статьи antirez.com/news/52 , в которой утверждается, что это неправильный способ использования redis, в любом случае я не 100% с этим согласны, довольны ли вы производительностью использования redis с swap?
Талсибоны
1
@DarthSpeedious В вашем журнале Redis вы увидите ошибки « Не удается выделить память ». Смотрите здесь о том, как просмотреть файл журнала: stackoverflow.com/questions/16337107/…
Бруно Перес
3

Я тоже столкнулся с той же проблемой. Оба ответа (наиболее одобренный и принятый) просто дают временное исправление для одного и того же.

Более того, config set stop-writes-on-bgsave-error noэто ужасный способ просмотреть эту ошибку, поскольку эта опция не дает перенаправить уведомление о том, что запись была остановлена, и перейти без записи данных в снимок. Это просто игнорирование этой ошибки. Отослать это

Что касается настройки dirв configredis-cli, после перезапуска службы redis это тоже должно быть очищено, и снова появится та же ошибка. Значение по умолчанию для dirin redis.conf- это ./, и если вы запускаете redis от имени пользователя root, то ./это то, /на что не предоставляются разрешения на запись, и, следовательно, ошибка.

Лучший способ - установить dirпараметр в файле redis.conf и установить соответствующие разрешения для этого каталога. Большинство дистрибутивов Debian должны иметь его в/etc/redis/redis.conf

Маянк Шарма
источник
3

В настоящее время проблемы доступа к записи Redis, которые передают это сообщение об ошибке клиенту, вновь появились в официальных redisконтейнерах докера.

Redis из официального redisобраза пытается записать файл .rdb в /dataпапку Containers , что весьма прискорбно, так как это папка, принадлежащая корню, и это также непостоянное расположение (записанные там данные исчезнут, если ваш контейнер / модуль аварий).

Таким образом, после часа бездействия, если вы запустили свой redisконтейнер как пользователь без полномочий root (например, docker run -u 1007вместо того, чтобы использовать его по умолчанию docker run -u 0), в журнале вашего сервера вы получите сообщение об ошибке (см. docker logs redis):

1:M 29 Jun 2019 21:11:22.014 * 1 changes in 3600 seconds. Saving...
1:M 29 Jun 2019 21:11:22.015 * Background saving started by pid 499
499:C 29 Jun 2019 21:11:22.015 # Failed opening the RDB file dump.rdb (in server root dir /data) for saving: Permission denied
1:M 29 Jun 2019 21:11:22.115 # Background saving error

Итак, вам нужно сопоставить /dataпапку контейнера с внешним местоположением (где пользователь без полномочий root, здесь: 1007, имеет доступ на запись, например, /tmpна хост-машине), например:

docker run --rm -d --name redis -p 6379:6379 -u 1007 -v /tmp:/data redis

Таким образом, это неправильная конфигурация официального образа докера (который должен писать /tmpнет /data), который производит эту «бомбу замедленного действия», с которой вы, скорее всего, столкнетесь только в производстве ... в одночасье в течение особенно тихих праздничных выходных: /

mirekphd
источник
1
Я просто хотел добавить комментарий здесь, так как это в конечном итоге помогло решить проблемы, с которыми я столкнулся в Redis в Docker. Наши серверы UAT и Dev Docker являются Windows. Защитник Windows определит файлы RDB как потенциальные вирусы. Так что монтирование вашего каталога / data временно решит проблему с родителями; пока Защитник Windows не помещает файл в карантин, вызывая другой. УБЕДИТЕСЬ, что вы добавили подключенный каталог данных в качестве исключения в Защитнике Windows для решения этой проблемы.
TrevorB
1
Напоминает мне, что предупреждение Защитника Windows не обязательно может быть ложным срабатыванием - криптоминант может заразить официальный образ Redis даже при запуске его без рута и со всеми
потерянными
Спасибо, это хороший момент. Просто любопытно, но как файл RDB будет выполняться на хосте, особенно в Windows? Я полагаю, это может быть выполнено внутри самого контейнера. Но это не специфично для этого конкретного контейнера.
TrevorB
1
Правильно, полезная нагрузка, вероятно, не будет выполняться в Windows, если только она не будет написана полностью на Lua и, следовательно, будет кроссплатформенной, как сам Redis ... Команда eval - это изобретение дьявола, независимо от языка
mirekphd
Это был поучительный опыт; Огромное спасибо. По-видимому, наши файлы компоновки UAT / DEV представляли порты вне сети Docker. Я не знаю, как это возможно, но те экземпляры получали команды администратора и, действительно. запускали крипто-майнер. Я отключил эти порты, отключил локальное монтирование RDB и заново установил исключение Защитника Windows (хотя это не будет иметь значения при отключенном монтировании). Мне нужно выяснить, КАК эти команды проходили через наш брандмауэр, но я внимательно
слежу
3

для меня

config set stop-writes-on-bgsave-error no

и я перезагружаю свой Mac, это работает

wuhaiwei
источник
1

Я столкнулся с этой проблемой, работая на сервере с дисковым пространством AFS, потому что срок действия моего токена аутентификации истек, что давало Permission Deniedответы, когда сервер redis пытался сохранить. Я решил это, обновив свой токен:

kinit USERNAME_HERE -l 30d && aklog

duhaime
источник
1

Если вы используете docker / docker-compose и хотите запретить redis писать в файл, вы можете создать конфигурацию redis и смонтировать ее в контейнер.

docker.compose.override.yml

  redis:¬
      volumes:¬
        - ./redis.conf:/usr/local/etc/redis/redis.conf¬
      ports:¬
        - 6379:6379¬

Вы можете скачать конфигурацию по умолчанию здесь

в файле redis.conf обязательно закомментируйте эти 3 строки

save 900 1
save 300 10
save 60 10000

Вы можете увидеть больше решений для удаления постоянных данных здесь

Ник Ванавит
источник
1

В моем случае это произошло потому, что я просто установил redisбыстрым способом. Таким образом, Redis не работает как root. Я смог решить эту проблему, следуя инструкциям в Installing Redis more properlyразделе « Краткое руководство» . После этого проблема была решена и redisтеперь выполняется от имени пользователя root. Проверьте это.

meow2x
источник
1

После того, как я наконец-то ударил по такому количеству ТАКИХ вопросов - для меня ответ @Axel Advento сработал, но с несколькими дополнительными шагами - я все еще сталкивался с проблемами с разрешениями.
Мне пришлось переключить пользователя на redis, создать новый каталог в его домашнем каталоге, а затем установить его в качестве каталога Redis.

sudo su - redis -s /bin/bash
mkdir redis_dir
redis-cli CONFIG SET dir $(realpath redis_dir)
exit # to logout from redis user (optional)
markroxor
источник
0

В моем случае это было связано с дисковым пространством. (вы можете проверить это df -hкомандой bash), когда я освобождаю место, эта ошибка исчезла.

Мохаммед Реза Эсмаилзаде
источник
0

Если вы работаете с Redis локально на компьютере с Windows, попробуйте «запустить от имени администратора» и посмотрите, работает ли он. У меня проблема была в том, что Redis был расположен в папке «Program Files», которая ограничивает разрешения по умолчанию. Как это должно.

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

Итак, мы смогли быстро определить проблему, запустив ее от имени администратора, но это не лекарство. Вероятный сценарий состоит в том, что вы поместили Redis в папку, у которой нет прав на запись, и, как следствие, файл БД хранится в том же месте.

Вы можете решить эту проблему, открыв redis.windows.confи для поиска следующей конфигурации:

    # 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 ./

Перейдите dir ./на путь, для которого у вас есть обычные права на чтение / запись.

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

Pascalculator
источник
0

Для меня это была просто проблема прав доступа к папке с постоянными данными redis. Я дал это:

chmod 777 -Rf data/

И это работает! Может быть, еще рано говорить, что это решит проблему. Я также подозреваю, что redis не выполняется от имени пользователя root, поэтому мне нужно проверить мой dockerFile, чтобы узнать больше.

macherif
источник
0

Проверьте свой журнал Redis, прежде чем предпринимать какие-либо действия. Некоторые решения в этой теме могут стереть ваши данные Redis, поэтому будьте осторожны с тем, что вы делаете.

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

Erfun
источник
0

Пожалуйста, имейте в виду, что эта ошибка появляется, когда ваш сервер подвергается атаке. Только что обнаружил, что redis не может записать в /etc/cron.d/web, где после корректировки прав доступа был добавлен новый файл, состоящий из алгоритма майнинга с некоторыми опциями скрытия.

qzaki
источник
0
# on redis 6.0.4 
# if show error 'MISCONF Redis is configured to save RDB snapshots'
# Because redis doesn't have permissions to create dump.rdb file
sudo redis/bin/redis-server 
sudo redis/bin/redis-cli
фанат youwei
источник
-1

Как отмечает @Chris, проблема, вероятно, связана с нехваткой памяти. Мы начали испытывать это, когда выделяли слишком много оперативной памяти для MySQL ( innodb_buffer_pool_size).

Чтобы обеспечить достаточно оперативной памяти для Redis и других сервисов, мы сократили innodb_buffer_pool_sizeна MySQL.

Мугома Дж. Окомба
источник
-1

В моем случае причиной было очень мало свободного места на диске (всего 35 Мб). Я сделал следующее -

  1. Остановил все процессы, связанные с Redis
  2. Удалите некоторые файлы на диске, чтобы освободить место
  3. Удалить файл дампа redis (если существующие данные не нужны)

    sudo rm /var/lib/redis/*

  4. Удалить все ключи всех существующих баз данных

    sudo redis-cli flushall

  5. перезапустите все задачи сельдерея и проверьте соответствующие журналы для любых проблем
rajarshig
источник
1
Вы, должно быть, сделали это на своем экземпляре разработчика. Не правильное решение при работе с приложениями, ориентированными на данные.
Никеш Деваки
-1

Вы должны chmod и chown новую папку

chown -R redis и chmod ...

Мохамед-Яссин Белатар
источник