Redis服务器在使用Docker镜像时拒绝连接

nr9pn0ug  于 8个月前  发布在  Redis
关注(0)|答案(3)|浏览(105)

我使用docker开始使用postgres,kibana,elasticsearch和redis。(使用docker-compose up命令)。然而,Redis未能开始给出此错误。

您可以看到屏幕截图中的最后一个错误行(显示错误的文件格式)。我该如何解决这个问题?另外,我不知道如何在终端中使用docker运行redis命令,如./redis-check-aof --fix,如屏幕截图所示?

owfi6suc

owfi6suc1#

就像Uku提到的,AOF文件已经损坏,你应该运行一个命令来修复它。Redis redis:4.0.11-alpine官方镜像的正确命令是:

docker-compose run redis redis-check-aof --fix appendonly.aof

这假设你的redis容器的名字是“redis”。点击“y”确认(它不像一个问题,但它需要输入。

nvbavucw

nvbavucw2#

我想在从快照重建服务器后添加一些关于redis:7 docker容器的此问题的额外信息。

  • Redis将仅附加文件存储在一个专用目录中,由配置中的appenddirname参数定义(默认为appendonlydir)。
  • 运行docker compose命令会给出一个对话框,需要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,如果一切顺利,你应该又有了一个工作容器。

tquggr8v

tquggr8v3#

编辑:您的redis AOF文件已损坏。两个选择:
1)如果您不关心数据,则可以删除卷并重新创建它
2)如果你确实关心数据,可以临时添加redis服务的入口点定义:

entrypoint:
 - redis-check-aof
 - --fix
 - /data/appendonly.aof

docker-compose一次,然后删除它,这应该可以修复它

相关问题