@BashkaMen
C# программист

Почему Redis удаляет мои данные у которых нет Expire?

Привет, поднял в докере Redis, залил в него данных (ListLeftPush) общим обьемом на пару килобайт, проходит пару часов и мой Redis становится чистым, оставив в себе только backup1 - backup4

Заливаю данные я не указывая Expire, в Redis UI я вижу что у списка TTL -1, больше я ничего с редисом не делал, не заливал данных, не читал, просто он сам через время все удаляет.

Вот кусок моего compose:
redis: 
        image: redis
        ports:
            - 6379:6379
        command:
            - "redis-server"
            - "--appendonly"
            - "yes"
        volumes:
            - "/root/redis:/data"


в docker ps показано что Redis живет уже несколько дней.

вот код которым я заливаю данные
type RedisMq(db: IDatabase) =
    interface ITransient

    member private x.GetKey<'a>() = typeof<'a>.Name |> RedisKey.op_Implicit
    member private x.GetValue item = JsonConvert.SerializeObject(item) |> RedisValue.op_Implicit


    member x.SendMessage (msg: 'a) = async {
        return! db.ListLeftPushAsync(x.GetKey<'a>(), x.GetValue msg)
    }


логи контейнера:
1:C 11 Aug 2020 09:11:36.241 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1:C 11 Aug 2020 09:11:36.241 # Redis version=6.0.6, bits=64, commit=00000000, modified=0, pid=1, just started
1:C 11 Aug 2020 09:11:36.241 # Configuration loaded
1:M 11 Aug 2020 09:11:36.245 * Running mode=standalone, port=6379.
1:M 11 Aug 2020 09:11:36.245 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
1:M 11 Aug 2020 09:11:36.245 # Server initialized
1:M 11 Aug 2020 09:11:36.245 # 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.
1:M 11 Aug 2020 09:11:36.246 # 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.
1:M 11 Aug 2020 09:11:36.250 * DB loaded from append only file: 0.002 seconds
1:M 11 Aug 2020 09:11:36.250 * Ready to accept connections
1:M 11 Aug 2020 11:53:14.304 * DB saved on disk
1:M 11 Aug 2020 11:53:14.434 * DB saved on disk
1:M 11 Aug 2020 11:53:14.512 * DB saved on disk
1:M 11 Aug 2020 11:53:14.536 * DB saved on disk
1:M 11 Aug 2020 11:53:14.918 * DB saved on disk
...
1:M 11 Aug 2020 12:28:36.124 * DB saved on disk


Возможно это важно:
все это развернуто на debian
в docker swarm, одна машина

Помогите пожалуйста, мне удобно использовать Redis как MQ брокера, пробовал перелезть на кафку или pulsar - это танк по воробьям
  • Вопрос задан
  • 177 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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