Использование redis с docker -compose: MISCONF Redis настроен для сохранения снимков RDB, но в настоящее время он не может сохраняться на диске - PullRequest
0 голосов
/ 07 февраля 2020

Я полагаю, что на этот вопрос есть несколько ответов: MISCONF Redis настроен на сохранение снимков RDB .

В настоящее время у меня запущен контейнер Redis docker, который время от времени возвращается следующая ошибка:

MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.

В сочетании с:

redis_1        | 4410:C 06 Feb 2020 23:50:57.045 # Failed opening the RDB file crontab (in server root dir /etc) for saving: Permission denied

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

Я также вижу следующее WARNINGS из контейнера redis:

# WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.

Я чувствую, что, возможно, этот вопрос является идеальной возможностью попросить экспертов Redis / Devops, возможно, наметить лучший способ настройки Redis с docker -композицией, у меня в настоящее время есть:

  redis:
    build:
      context: ./redis
      dockerfile: Dockerfile
    ports:
      - '6379:6379'
    volumes:
        - ./redis.conf:/usr/local/etc/redis/redis.conf
    sysctls:
      net.core.somaxcomm: '511'
    restart: on-failure

Если есть что-то лучшее, что можно сделать, это было бы удивительно и ценилось.

1 Ответ

1 голос
/ 02 мая 2020

Ваш экземпляр redis, вероятно, открыт для inte rnet. Вы можете использовать от redis.conf до bind 127.0.0.1, чтобы разрешить только локальные подключения.

См. Подробный ответ здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...