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如何实现清空缓存

    redis如何实现清空缓存

    这篇文章主要介绍了redis如何实现清空缓存,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 从源码解读redis持久化

    从源码解读redis持久化

    redis的持久化也就是数据落地,对于任何一个数据系统都要考虑是不是需要数据落地。在系统崩溃或是机房掉电等的情况下,将有用的数据记录在非易失性存储器上面,防止数据丢失,以及用来系统重启时的数据恢复。
    2018-08-08
  • 基于redis实现的点赞功能设计思路详解

    基于redis实现的点赞功能设计思路详解

    点赞是我们现在经常见到的一个效果,如朋友圈、微博都有点赞的效果,下面这篇文章主要跟大家分享了基于redis实现的点赞功能设计思路的相关资料,文中介绍的非常详细,对大家实现点赞功能具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-05-05
  • 详解如何利用Redis实现生成唯一ID

    详解如何利用Redis实现生成唯一ID

    随着下单流量逐渐上升,为了降低数据库的访问压力,需要通过请求唯一ID+redis分布式锁来防止接口重复提交。今天我们就一起来看探讨一下,如何通过服务端来完成请求唯一 ID 的生成
    2022-11-11
  • Redis Redisson lock和tryLock的原理分析

    Redis Redisson lock和tryLock的原理分析

    这篇文章主要介绍了Redis Redisson lock和tryLock的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • Redis的持久化方案详解

    Redis的持久化方案详解

    在本篇文章里小编给大家整理的是关于Redis的持久化方案详解,有兴趣的朋友们可以参考下。
    2020-03-03
  • Redis主从复制操作和配置详情

    Redis主从复制操作和配置详情

    这篇文章主要介绍了Redis主从复制操作和配置详情,文章通过围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • K8S部署Redis(单机、集群)的超详细步骤

    K8S部署Redis(单机、集群)的超详细步骤

    redis是一款基于BSD协议,开源的非关系型数据库(nosql数据库)这篇文章主要给大家介绍了关于K8S部署Redis(单机、集群)的超详细步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-05-05
  • redis分布式锁解决缓存双写一致性

    redis分布式锁解决缓存双写一致性

    这篇文章主要为大家介绍了redis分布式锁解决缓存双写一致性示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • Redis 缓存双写一致性的解决方案

    Redis 缓存双写一致性的解决方案

    本文主要介绍了Redis 缓存双写一致性的解决方案,包括CacheAsidePattern、ReadThrough/WriteThrough和WriteBehind三种模式,具有一定的参考价值,感兴趣的可以了解一下
    2025-02-02

最新评论