Python3.x—从docker compose启动的redis中的所有数据都被刷新并变成备份

iyzzxitl  于 2021-06-09  发布在  Redis
关注(0)|答案(0)|浏览(202)

我有一个python代码,它向redis发出请求。这个代码是用flask启动的。还有一个dockerfile来运行它。
dockerfile如下

RUN mkdir /autotutor_api

WORKDIR /autotutor_api

COPY . /autotutor_api/

EXPOSE 5000

RUN pip3 install -r requirements.txt

RUN wget https://github.com/jwijffels/udpipe.models.ud.2.0/raw/master/inst/udpipe-ud-2.0-170801/russian-syntagrus-ud-2.0-170801.udpipe -O /autotutor_api/app/recommendation_logic/processing_data/russian-syntagrus-ud-2.0-170801.udpipe

RUN wget https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.ru.300.vec.gz -O /autotutor_api/app/recommendation_logic/processing_data/cc.ru.300.vec.gz
RUN gzip -d  /autotutor_api/app/recommendation_logic/processing_data/cc.ru.300.vec.gz

CMD flask run --host='0.0.0.0'

docker compose文件如下

version: '2'
services:
    at:
        build: .
        image: auto
        ports:
            - "5000:5000"
        volumes:
            - .:/code
        depends_on:
            - redis
    redis:
        image: redis
        restart: always
        expose:
            - '6379'
        ports:
            - '6379:6379'

我使用 docker-compose up 一切都正常。我发送请求并得到我期望得到的结果。但是过了一段时间,我让运行中的服务器保持原样,然后从docker compose启动的redis示例开始显示这样的日志

redis_1  | 1:S 16 Mar 2020 20:39:02.031 * Before turning into a replica, using my master parameters to synthesize a cached master: I may be able to synchronize with the new master with just a partial transfer.
redis_1  | 1:S 16 Mar 2020 20:39:02.031 * REPLICAOF 82.118.17.133:8887 enabled (user request from 'id=6 addr=194.87.103.156:38962 fd=11 name= age=1 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=47 qbuf-free=32721 obl=0 oll=0 omem=0 events=r cmd=slaveof')
redis_1  | 1:S 16 Mar 2020 20:39:02.608 * Connecting to MASTER 82.118.17.133:8887
redis_1  | 1:S 16 Mar 2020 20:39:02.609 * MASTER <-> REPLICA sync started
redis_1  | 1:S 16 Mar 2020 20:39:02.626 * Non blocking connect for SYNC fired the event.
redis_1  | 1:S 16 Mar 2020 20:39:02.649 * Master replied to PING, replication can continue...
redis_1  | 1:S 16 Mar 2020 20:39:02.683 * Trying a partial resynchronization (request caf125292337f400085b0262cde341b4c83e8bd8:1).
redis_1  | 1:S 16 Mar 2020 20:39:02.705 * Full resync from master: ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ:1
redis_1  | 1:S 16 Mar 2020 20:39:02.705 * Discarding previously cached master state.
redis_1  | 1:S 16 Mar 2020 20:39:02.705 * MASTER <-> REPLICA sync: receiving 55640 bytes from master
redis_1  | 1:S 16 Mar 2020 20:39:02.740 * MASTER <-> REPLICA sync: Flushing old data
redis_1  | 1:S 16 Mar 2020 20:39:02.741 * MASTER <-> REPLICA sync: Loading DB in memory
redis_1  | 1:S 16 Mar 2020 20:39:02.741 # Wrong signature trying to load DB from file
redis_1  | 1:S 16 Mar 2020 20:39:02.741 # Failed trying to load the MASTER synchronization DB from disk
redis_1  | 1:S 16 Mar 2020 20:39:03.613 * Connecting to MASTER 82.118.17.133:8887
redis_1  | 1:S 16 Mar 2020 20:39:03.613 * MASTER <-> REPLICA sync started
redis_1  | 1:S 16 Mar 2020 20:39:03.630 * Non blocking connect for SYNC fired the event.
redis_1  | 1:S 16 Mar 2020 20:39:03.646 # Error condition on socket for SYNC: Broken pipe
redis_1  | 1:S 16 Mar 2020 20:39:04.616 * Connecting to MASTER 82.118.17.133:8887
redis_1  | 1:S 16 Mar 2020 20:39:04.617 * MASTER <-> REPLICA sync started
redis_1  | 1:S 16 Mar 2020 20:39:04.633 * Non blocking connect for SYNC fired the event.
redis_1  | 1:S 16 Mar 2020 20:39:04.650 # Error condition on socket for SYNC: Connection reset by peer
redis_1  | 1:S 16 Mar 2020 20:39:05.620 * Connecting to MASTER 82.118.17.133:8887
redis_1  | 1:S 16 Mar 2020 20:39:05.620 * MASTER <-> REPLICA sync started
redis_1  | 1:S 16 Mar 2020 20:39:05.637 * Non blocking connect for SYNC fired the event.
redis_1  | 1:S 16 Mar 2020 20:39:05.653 # Error condition on socket for SYNC: Broken pipe
redis_1  | 1:S 16 Mar 2020 20:39:06.623 * Connecting to MASTER 82.118.17.133:8887
redis_1  | 1:S 16 Mar 2020 20:39:06.623 * MASTER <-> REPLICA sync started
redis_1  | 1:S 16 Mar 2020 20:39:06.640 * Non blocking connect for SYNC fired the event.
redis_1  | 1:S 16 Mar 2020 20:39:06.656 # Error condition on socket for SYNC: Connection reset by peer
redis_1  | 1:S 16 Mar 2020 20:39:07.626 * Connecting to MASTER 82.118.17.133:8887
redis_1  | 1:S 16 Mar 2020 20:39:07.626 * MASTER <-> REPLICA sync started
redis_1  | 1:S 16 Mar 2020 20:39:07.643 * Non blocking connect for SYNC fired the event.
redis_1  | 1:S 16 Mar 2020 20:39:07.660 # Error condition on socket for SYNC: Broken pipe
redis_1  | 1:S 16 Mar 2020 20:39:08.629 * Connecting to MASTER 82.118.17.133:8887
redis_1  | 1:S 16 Mar 2020 20:39:08.629 * MASTER <-> REPLICA sync started
redis_1  | 1:S 16 Mar 2020 20:39:08.646 * Non blocking connect for SYNC fired the event.
redis_1  | 1:S 16 Mar 2020 20:39:08.662 # Error reply to PING from master: '-Reading from master: Resource temporarily unavailable'
redis_1  | 1:S 16 Mar 2020 20:39:09.183 * Module 'system' loaded from ./red2.so
redis_1  | 1:M 16 Mar 2020 20:39:09.249 # Setting secondary replication ID to caf125292337f400085b0262cde341b4c83e8bd8, valid up to offset: 1. New replication ID is e7d42791af95ebd0a867aa0f6b364d4cfadb9c37
redis_1  | 1:M 16 Mar 2020 20:39:09.249 * MASTER MODE enabled (user request from 'id=6 addr=194.87.103.156:38962 fd=11 name= age=8 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')
redis_1  | 1:M 16 Mar 2020 20:39:10.203 * Module system unloaded
redis_1  | 1:S 16 Mar 2020 21:04:59.569 * Before turning into a replica, using my master parameters to synthesize a cached master: I may be able to synchronize with the new master with just a partial transfer.
redis_1  | 1:S 16 Mar 2020 21:04:59.569 * REPLICAOF 82.118.17.133:8887 enabled (user request from 'id=8 addr=194.87.103.156:50158 fd=11 name= age=0 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=47 qbuf-free=32721 obl=0 oll=0 omem=0 events=r cmd=slaveof')
redis_1  | 1:S 16 Mar 2020 21:04:59.637 * Connecting to MASTER 82.118.17.133:8887
redis_1  | 1:S 16 Mar 2020 21:04:59.637 * MASTER <-> REPLICA sync started
redis_1  | 1:S 16 Mar 2020 21:04:59.661 * Non blocking connect for SYNC fired the event.
redis_1  | 1:S 16 Mar 2020 21:04:59.684 * Master replied to PING, replication can continue...
redis_1  | 1:S 16 Mar 2020 21:04:59.733 * Trying a partial resynchronization (request e7d42791af95ebd0a867aa0f6b364d4cfadb9c37:1).
redis_1  | 1:S 16 Mar 2020 21:04:59.757 * Full resync from master: ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ:1
redis_1  | 1:S 16 Mar 2020 21:04:59.757 * Discarding previously cached master state.
redis_1  | 1:S 16 Mar 2020 21:04:59.758 * MASTER <-> REPLICA sync: receiving 55640 bytes from master
redis_1  | 1:S 16 Mar 2020 21:04:59.805 * MASTER <-> REPLICA sync: Flushing old data
redis_1  | 1:S 16 Mar 2020 21:04:59.806 * MASTER <-> REPLICA sync: Loading DB in memory
redis_1  | 1:S 16 Mar 2020 21:04:59.806 # Wrong signature trying to load DB from file
redis_1  | 1:S 16 Mar 2020 21:04:59.807 # Failed trying to load the MASTER synchronization DB from disk
redis_1  | 1:S 16 Mar 2020 21:05:00.640 * Connecting to MASTER 82.118.17.133:8887
redis_1  | 1:S 16 Mar 2020 21:05:00.640 * MASTER <-> REPLICA sync started
redis_1  | 1:S 16 Mar 2020 21:05:00.665 * Non blocking connect for SYNC fired the event.
redis_1  | 1:S 16 Mar 2020 21:05:00.688 # Error condition on socket for SYNC: Connection reset by peer
redis_1  | 1:S 16 Mar 2020 21:05:01.643 * Connecting to MASTER 82.118.17.133:8887
redis_1  | 1:S 16 Mar 2020 21:05:01.643 * MASTER <-> REPLICA sync started
redis_1  | 1:S 16 Mar 2020 21:05:01.665 * Non blocking connect for SYNC fired the event.
redis_1  | 1:S 16 Mar 2020 21:05:01.688 # Error condition on socket for SYNC: Connection reset by peer
redis_1  | 1:S 16 Mar 2020 21:05:02.646 * Connecting to MASTER 82.118.17.133:8887
redis_1  | 1:S 16 Mar 2020 21:05:02.646 * MASTER <-> REPLICA sync started
redis_1  | 1:S 16 Mar 2020 21:05:02.669 * Non blocking connect for SYNC fired the event.
redis_1  | 1:S 16 Mar 2020 21:05:02.693 # Error condition on socket for SYNC: Connection reset by peer
redis_1  | 1:S 16 Mar 2020 21:05:03.648 * Connecting to MASTER 82.118.17.133:8887
redis_1  | 1:S 16 Mar 2020 21:05:03.649 * MASTER <-> REPLICA sync started
redis_1  | 1:S 16 Mar 2020 21:05:03.673 * Non blocking connect for SYNC fired the event.
redis_1  | 1:S 16 Mar 2020 21:05:03.697 # Error condition on socket for SYNC: Connection reset by peer
redis_1  | 1:S 16 Mar 2020 21:05:04.651 * Connecting to MASTER 82.118.17.133:8887
redis_1  | 1:S 16 Mar 2020 21:05:04.652 * MASTER <-> REPLICA sync started
redis_1  | 1:S 16 Mar 2020 21:05:04.673 * Non blocking connect for SYNC fired the event.
redis_1  | 1:S 16 Mar 2020 21:05:04.697 # Error condition on socket for SYNC: Connection reset by peer
redis_1  | 1:S 16 Mar 2020 21:05:05.654 * Connecting to MASTER 82.118.17.133:8887
redis_1  | 1:S 16 Mar 2020 21:05:05.655 * MASTER <-> REPLICA sync started
redis_1  | 1:S 16 Mar 2020 21:05:05.677 * Non blocking connect for SYNC fired the event.
redis_1  | 1:S 16 Mar 2020 21:05:05.697 # Error condition on socket for SYNC: Connection reset by peer
redis_1  | 1:S 16 Mar 2020 21:05:06.657 * Connecting to MASTER 82.118.17.133:8887
redis_1  | 1:S 16 Mar 2020 21:05:06.657 * MASTER <-> REPLICA sync started
redis_1  | 1:S 16 Mar 2020 21:05:06.681 * Non blocking connect for SYNC fired the event.
redis_1  | 1:S 16 Mar 2020 21:05:06.705 # Error condition on socket for SYNC: Connection reset by peer
redis_1  | 1:S 16 Mar 2020 21:05:06.713 * Module 'system' loaded from ./red2.so
redis_1  | 1:M 16 Mar 2020 21:05:06.784 # Setting secondary replication ID to e7d42791af95ebd0a867aa0f6b364d4cfadb9c37, valid up to offset: 1. New replication ID is cd75db63b2074bbe9a1330d8d3cc136cb06bfbf1
redis_1  | 1:M 16 Mar 2020 21:05:06.785 * MASTER MODE enabled (user request from 'id=8 addr=194.87.103.156:50158 fd=11 name= age=7 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')
redis_1  | 1:M 16 Mar 2020 21:05:09.849 * Module system unloaded
redis_1  | 1:M 16 Mar 2020 21:09:14.089 * 1 changes in 3600 seconds. Saving...
redis_1  | 1:M 16 Mar 2020 21:09:14.091 * Background saving started by pid 288
redis_1  | 288:C 16 Mar 2020 21:09:14.127 * DB saved on disk
redis_1  | 288:C 16 Mar 2020 21:09:14.129 * RDB: 0 MB of memory used by copy-on-write
redis_1  | 1:M 16 Mar 2020 21:09:14.191 # Warning, detected child with unmatched pid: 243
redis_1  | 1:M 16 Mar 2020 21:09:14.292 # Warning, detected child with unmatched pid: 280
redis_1  | 1:M 16 Mar 2020 21:09:14.392 * Background saving terminated with success
packet_write_wait: Connection to 84.201.188.33 port 22: Broken pipe

抱歉,这么多的文字,但我不知道确切的行在日志中,我应该参考。所以接下来发生的事情是,过去存储在redis中的所有数据都变成了备份。这意味着当我使用 sudo docker-compose exec redis sh 并连接到 redis-cli 并询问 keys * 我只有钥匙

127.0.0.1:6379> keys *
1) "backup2"
2) "backup3" 
3) "backup1"

但是,我的python代码在运行时应该请求许多其他密钥。
那会是什么?如何防止redis自动备份?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题