redis启动报错Can‘t open the log file: No such file or directory

 更新时间:2023年11月01日 10:24:28   作者:鼠鼠我呀2  
这篇文章主要介绍了redis启动报错Can‘t open the log file: No such file or directory问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

问题描述

在使用docker-compose安装redis的时候,启动失败,提示无法开发日志文件,这主要是容器中没有对应的日志文件造成的,另一点就是对应的日志文件没有相应权限所导致

异常信息如下所示

*** FATAL CONFIG FILE ERROR ***
Reading the configuration file, at line 103
>>> 'logfile /var/log/redis/redis.log'
Can't open the log file: No such file or directory

原因分析

这个提示里面的/var/log/redis/redis.log日志文件指的是容器中的文件,千万别理解为宿主机中的路径,如果你在宿主机创建此文件并授权,最后结果也是一样的,理解这一点很重要。

相关docker-compse.yml

配置如下

version: '3'
services:
  redis:  
    hostname: redis
    image: redis:latest
    container_name: redis
    restart: unless-stopped
    command: redis-server /etc/redis.conf
    environment:
        - TZ=Asia/Shanghai # 时区设置
    volumes:
        - /etc/localtime:/etc/localtime:ro # 时区设置
        - ./data:/data  # redis 数据存储目录
        - ./redis.conf:/etc/redis.conf # redis配置文件
    ports:
        - "6379:6379"

为了方面随时修改redis配置,所以将配置文件进行了映射

redis中日志文件的配置项如下:

# Specify the log file name. Also the empty string can be used to force
# Redis to log on the standard output. Note that if you use standard
# output for logging but daemonize, logs will be sent to /dev/null
logfile "/var/log/redis/redis.log"

启动的时候就提示上述错误了,要解决这个问题有两种方案

解决方案

方案一

直接将redis.conf中的logfile配置注释掉或者设置为空就可以了,但是这样就不会输出日志了,如果有问题需要排查就不方面了。

方案二

在宿主机的./data目录下创建redis.log文件并授予权限,当前redis安装的绝对路径为/home/local/docker/redis

以下都是指的相对路径

touch data/redis.log

chmod 777 data/redis.log
修改日志相关配置,这样容器中就会自动创建日志文件并授予权限了

logfile "/data/redis.log"
重新构建并查看日志应该都正常了


docker-compose up --build -d

docker logs redis

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Redis使用Lua脚本命令详解

    Redis使用Lua脚本命令详解

    这篇文章主要为大家介绍了Redis使用Lua脚本命令详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Redis实现延迟任务的常见方案详解

    Redis实现延迟任务的常见方案详解

    延迟任务(Delayed Task)是指在未来的某个时间点,执行相应的任务,本文为大家整理了Redis实现延迟任务的几个常见方案,希望对大家有所帮助
    2024-04-04
  • Redis不同数据类型的命令语句详解

    Redis不同数据类型的命令语句详解

    这篇文章主要介绍了Redis不同数据类型的命令语句,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • Redis中删除策略的几种实现方式

    Redis中删除策略的几种实现方式

    本文详细介绍了Redis的过期键删除策略和内存淘汰策略,过期键删除策略包括定时删除、惰性删除和定期删除,具有一定的参考价值,感兴趣的可以了解一下
    2025-11-11
  • Redis 主从搭建的实现(同主机和跨节点)

    Redis 主从搭建的实现(同主机和跨节点)

    本文主要介绍了Redis 主从搭建的实现,包括同主机和跨节点,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-09-09
  • Redis教程(十五):C语言连接操作代码实例

    Redis教程(十五):C语言连接操作代码实例

    这篇文章主要介绍了Redis教程(十五):C语言连接操作代码实例,本篇博客是该系列博客中的最后一篇,在这里将给出基于Redis客户端组件访问并操作Redis服务器的代码示例,需要的朋友可以参考下
    2015-05-05
  • Redis实现开机自启脚本(linux)

    Redis实现开机自启脚本(linux)

    本段文字主要介绍了在Linux系统中通过创建启动脚本和修改配置文件来实现Redis服务的开机自启动,并强调了使用chkconfig命令的重要性,通过本文,读者可以掌握Redis服务在Linux系统中的安装与配置方法
    2026-06-06
  • Redis AOF文件损坏报错的完整修复方案

    Redis AOF文件损坏报错的完整修复方案

    文章提供了三种修复Redis AOF持久化文件损坏的方法,方法一:备份损坏文件,使用官方工具修复;方法二:修改配置让Redis忽略损坏的文件尾部;方法三:如果是Redis且混合AOF格式,使用相同修复命令,每种方法都有详细步骤,确保修复后Redis可以正常启动,需要的朋友可以参考下
    2026-04-04
  • Redis缓存与数据库一致性的完整指南

    Redis缓存与数据库一致性的完整指南

    某金融平台因缓存数据不一致导致用户余额错乱,损失千万!文中将用银行对账比喻+实战代码,揭秘6大解决方案,让你的数据毫秒级同步,所以本文给大家详细介绍了Redis缓存与数据库一致性的完整指南,需要的朋友可以参考下
    2025-09-09
  • Redis之Set和Zset使用及说明

    Redis之Set和Zset使用及说明

    文章介绍了Redis集合和有序集合的相关命令,包括添加、查询、修改、删除元素,集合间的交集、并集、差集操作,以及数据库管理操作,强调了在实际开发中合理使用这些功能的重要性
    2026-03-03

最新评论