我使用docker开始使用postgres,kibana,elasticsearch和redis。(使用docker-compose up命令)。然而,Redis未能开始给出此错误。
您可以看到屏幕截图中的最后一个错误行(显示错误的文件格式)。我该如何解决这个问题?另外,我不知道如何在终端中使用docker运行redis命令,如./redis-check-aof --fix,如屏幕截图所示?
owfi6suc1#
就像Uku提到的,AOF文件已经损坏,你应该运行一个命令来修复它。Redis redis:4.0.11-alpine官方镜像的正确命令是:
redis:4.0.11-alpine
docker-compose run redis redis-check-aof --fix appendonly.aof
这假设你的redis容器的名字是“redis”。点击“y”确认(它不像一个问题,但它需要输入。
nvbavucw2#
我想在从快照重建服务器后添加一些关于redis:7 docker容器的此问题的额外信息。
redis:7
appenddirname
appendonlydir
y/N
Continue [y/N]
y
$ docker compose run --rm -it redis redis-check-aof --fix /data/appendonlydir/appendonly.aof.18.incr.aof Start checking Old-Style AOF AOF /data/appendonlydir/appendonly.aof.18.incr.aof format error AOF analyzed: filename=/data/appendonlydir/appendonly.aof.18.incr.aof, size=25858048, ok_up_to=25857792, ok_up_to_line=511436, diff=256 This will shrink the AOF /data/appendonlydir/appendonly.aof.18.incr.aof from 25858048 bytes, with 256 bytes, to 25857792 bytes y Continue? [y/N]: Successfully truncated AOF /data/appendonlydir/appendonly.aof.18.incr.aof
Start checking Old-Style AOF AOF analyzed: filename=/data/appendonlydir/appendonly.aof.18.incr.aof, size=25857792, ok_up_to=25857792, ok_up_to_line=511436, diff=0 AOF /data/appendonlydir/appendonly.aof.18.incr.aof is valid
然后像往常一样打开你的Redis,如果一切顺利,你应该又有了一个工作容器。
tquggr8v3#
编辑:您的redis AOF文件已损坏。两个选择:1)如果您不关心数据,则可以删除卷并重新创建它2)如果你确实关心数据,可以临时添加redis服务的入口点定义:
entrypoint: - redis-check-aof - --fix - /data/appendonly.aof
docker-compose一次,然后删除它,这应该可以修复它
3条答案
按热度按时间owfi6suc1#
就像Uku提到的,AOF文件已经损坏,你应该运行一个命令来修复它。Redis
redis:4.0.11-alpine
官方镜像的正确命令是:这假设你的redis容器的名字是“redis”。点击“y”确认(它不像一个问题,但它需要输入。
nvbavucw2#
我想在从快照重建服务器后添加一些关于
redis:7
docker容器的此问题的额外信息。appenddirname
参数定义(默认为appendonlydir
)。y/N
响应(在您按下一个键后,您实际上不会看到Continue [y/N]
;奇怪但真实)。在按下y
后,您将看到一条消息,表明它已成功截断。然后像往常一样打开你的Redis,如果一切顺利,你应该又有了一个工作容器。
tquggr8v3#
编辑:您的redis AOF文件已损坏。两个选择:
1)如果您不关心数据,则可以删除卷并重新创建它
2)如果你确实关心数据,可以临时添加redis服务的入口点定义:
docker-compose一次,然后删除它,这应该可以修复它