Redis启动报错,怎么解决?


redis[1599]: Server started, Redis version 3.2.6
redis[1599]: WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then r
redis[1599]: WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the comman
systemd[1]: Started Advanced key-value store.
redis[1599]: DB loaded from append only file: 26.004 seconds
redis[1599]: The server is now ready to accept connections on port 15930
systemd[1]: Stopping Advanced key-value store...
run-parts[894]: run-parts: executing /etc/redis/redis-server.pre-down.d/00_example
run-parts[914]: run-parts: executing /etc/redis/redis-server.post-down.d/00_example
systemd[1]: Stopped Advanced key-value store.   

redis启动报错 什么原因?

【以下回答由 GPT 生成】

解决方案:

该问题有两个警告信息,一个是关于overcommit_memory的警告,另一个是关于Transparent Huge Pages (THP)的警告。

  1. overcommit_memory警告解决方案: 这个警告表示在低内存情况下,后台保存可能会失败。为了解决这个问题,需要设置 vm.overcommit_memory = 1。按照以下步骤进行设置:

  2. 打开/etc/sysctl.conf文件: bash $ sudo nano /etc/sysctl.conf

  3. 在文件的末尾添加如下行: bash vm.overcommit_memory = 1

  4. 保存并退出文件。

  5. 更新sysctl: bash $ sudo sysctl -p

  6. Transparent Huge Pages (THP)警告解决方案: 这个警告表示THP的启用会导致Redis的延迟和内存使用问题。为了解决这个问题,需要禁用THP。按照以下步骤进行设置:

  7. 检查当前系统是否启用了THP: bash $ cat /sys/kernel/mm/transparent_hugepage/enabled

  8. 如果输出中包含[always]或者[madvise],则表示THP已经启用。将其禁用: bash $ echo never | sudo tee /sys/kernel/mm/transparent_hugepage/enabled

  9. 检查是否禁用成功: bash $ cat /sys/kernel/mm/transparent_hugepage/enabled

  10. 确保在系统重启后THP仍然被禁用,打开/etc/rc.local文件: bash $ sudo nano /etc/rc.local

  11. 在文件的末尾添加如下行: bash echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag

  12. 保存并退出文件。

  13. 重新启动系统: bash $ sudo reboot

以上是解决Redis启动报错的问题的具体步骤,按照这些步骤进行操作可以解决报错。如果你仍然遇到问题或有其他疑问,请随时向我提问。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

引用 皆我百晓生 小程序回复内容作答:
根据提示信息进行解决:

  1. WARNING overcommit_memory is set to 0!
    执行以下命令修改sysctl.conf文件:

    sudo vi /etc/sysctl.conf
    

    在文件末尾添加下面的配置:

    vm.overcommit_memory = 1
    

    保存并退出文件,然后重启Redis服务。

  2. WARNING you have Transparent Huge Pages (THP) support enabled in your kernel.
    执行以下命令禁用THP支持:

    sudo vi /etc/rc.local
    

    在文件末尾添加下面的配置:

    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    

    保存并退出文件,然后重启Redis服务。

如果以上操作都不能解决问题,可以尝试以下方法:

  1. 检查Redis的配置文件是否正确
    执行以下命令查看Redis配置文件路径:

    redis-cli config get dir
    

    执行以下命令打开Redis配置文件:

    sudo vi /etc/redis/redis.conf
    

    检查以下配置项是否正确:

    daemonize yes
    pidfile /var/run/redis/redis-server.pid
    logfile ""
    dir /var/lib/redis
    

    保存并退出文件,然后重启Redis服务。

  2. 检查Redis日志文件是否有其他报错信息
    执行以下命令查看Redis日志文件路径:

    redis-cli config get logfile
    

    打开Redis日志文件,查看是否有其他报错信息。根据报错信息进行相应的解决。

如果问题还无法解决,建议查看系统日志或者查看Redis的详细日志信息,以便进一步分析和定位问题。