Задать вопрос

Redis в Docker сам вычищает почему-то все данные. Что делать?

Всем привет.
Столкнулся со следующей проблемой.
Делаю приложение которое записывает данные и потом читает их из redis
Сам redis запущен в docker контейнере.
При запросе отслеживаю запись внутри контейнера
127.0.0.1:6379> keys *
1) "-C7pZ9Dsy3:IvlhTR68"


проверяю TTL
127.0.0.1:6379> ttl -C7pZ9Dsy3:IvlhTR68
(integer) 42662


т.е. всё как бы работает хорошо, ключ должен будет закончится через 42662 сек. (около 12 часов)
Потом чтото происходит и редис чистый.
Никаких запросов к нему не отправляю, редис полностью чистый. Проверяю его.
127.0.0.1:6379> keys *
(empty array)


сервер запущен на Digital Ocean. Серверок слабый, 1 Гб озу
проверю память
# free -m
              total        used        free      shared  buff/cache   available
Mem:            981         700          68          14         212         114
Swap:          1023         555         468


в volume прокинут конф. файл (кусок из docker-compose)
redis:
    image: redis:6.0.1
    ports:
      - 6379:6379
    volumes:
      - ./redis/redis.conf:/usr/local/etc/redis/redis.conf
      - ./redis/volume/:/data
    networks:
      - symfony
    command: [ "redis-server"]


куда копать? что смотреть?
делаю docker-compose logs redis
последние строки такие
redis_1     | 1:S 26 Jan 2021 11:50:57.299 * MASTER <-> REPLICA sync started
redis_1     | 1:S 26 Jan 2021 11:50:57.311 * Non blocking connect for SYNC fired the event.
redis_1     | 1:S 26 Jan 2021 11:50:58.392 # Module /tmp/exp_lin.so failed to load: It does not have execute permissions.
redis_1     | 1:M 26 Jan 2021 11:50:58.404 # Setting secondary replication ID to fc47e2e4f5487fa786ef9103d6033f6b393a393b, valid up to offset: 1. New replication ID is 015a93b3ff96075a9edd685787a0dea81adf88cc
redis_1     | 1:M 26 Jan 2021 11:50:58.405 * MASTER MODE enabled (user request from 'id=85 addr=188.166.115.185:12036 fd=9 name= age=5 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=34 qbuf-free=32734 obl=0 oll=0 omem=0 events=r cmd=slaveof user=default')
redis_1     | 1:M 26 Jan 2021 12:00:16.046 * 1 changes in 3600 seconds. Saving...
redis_1     | 1:M 26 Jan 2021 12:00:16.050 * Background saving started by pid 24
redis_1     | 24:C 26 Jan 2021 12:00:16.053 * DB saved on disk
redis_1     | 24:C 26 Jan 2021 12:00:16.054 * RDB: 0 MB of memory used by copy-on-write
redis_1     | 1:M 26 Jan 2021 12:00:16.150 * Background saving terminated with success


полагаю дело в этом * RDB: 0 MB of memory used by copy-on-write
как чинить? у кого какие мысли? заранее спасибо за ответ
  • Вопрос задан
  • 1161 просмотр
Подписаться 6 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 5
@vitaly_il1
DevOps Consulting
Проверьте лог VPS.
А через какое время исчезла запись? Больше 10 минут? Есть что-то в логе контейнера за это время?
Ответ написан
wazza
@wazza
Скорее всего память переполняется.
Попробуйте в redis.conf прописать maxmemory меньше половины от имеющегося 1Гб.
Ответ написан
@user9823 Автор вопроса
Так же, пробую создать билд на основании загруженого файла redis.conf в котором прописаны maxmemory
теперь при запуске
127.0.0.1:6379> config get maxmemory
1) "maxmemory"
2) "128000000"

изначально мемори уже установлен, но данные в редис не записываются
Ответ написан
Комментировать
Redis нужно запускать с такой командой - redis-server --appendonly yes
Ответ написан
Комментировать
@Nikidzawa
Привет, разобрался в чем дело? С такой же проблемой столкнулся, такое происходит только в docker
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы