记录阿里云服务器开启 Redis 服务踩的坑

服务器配置信息:1核 2GB的学生服务器,通过搭建宝塔面板方便运维

在宝塔的控制面板中可直接安装redis,可是通过直接安装的redis在点击运行的时候,无法正常运行

通过远程连接查看redis的日志cat /www/server/redis/logs.pl

发现日志当中存在错误,如下

 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 reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.

 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 command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.

一脸懵逼的我打开了百度,开始找出问题的原因

原因可在此查看

解决方案

考虑到redis一般都是部署在服务器上作为服务存在的。所以,本文的解决方案都是持久性配置,不是临时配置。

第一个警告

net.core.somaxconn = 1024添加到/etc/sysctl.conf中,然后执行sysctl -p生效配置。

第二个警告

vm.overcommit_memory = 1添加到/etc/sysctl.conf中,然后执行sysctl -p生效配置。

第三个警告

echo never > /sys/kernel/mm/transparent_hugepage/enabled添加到/etc/rc.local中,然后执行source /etc/rc.local生效配置。

修改完成后,重新启动redis服务再去查看redis日志已经没有报错信息,可是redis服务器依然不能运行

这时候突然检查发现,阿里云服务器需要手动打开端口,redis的默认端口号为6379,开启6379端口

在开启端口后,如果需要外部连接到redis服务器,还需要修改服务器配置,将bind 修改为 bind 0.0.0.0,允许任何服务连接,同时还可以修改requirepass + 密码来修改连接redis的密码

重启redis服务器,通过命令ps -ef | grep redis

redis 18872 18870 0 15:05 ? 00:00:05 /www/server/redis/src/redis-server 0.0.0.0:6379

ok,redis进程已经跑出来了,通过外部连接也可以成功连接

总结

因为是第一次写博客,如果有问题的地方,希望可以指出来

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 6

我怎么感觉是宝塔的锅。

4年前 评论
oliver-l (楼主) 4年前
萧晔离

宝塔的锅

4年前 评论
oliver-l (楼主) 4年前

redis 不要允许外部能访问 不然狠容易出事情

4年前 评论
oliver-l (楼主) 4年前

说个题外话... Redis 外网访问一定要设置白名单+强密码, 我这边的 VPS 被 DDG 木马攻击了一段时间,之前一直没注意Redis,仔细研究之后这两天终于是处理掉了 😭

4年前 评论
oliver-l (楼主) 4年前

建议还是不要用宝塔这种傻瓜式图形工具,容易形成依赖,对自己的提升不大。可以先尝试源码安装,再尝试docker使用。这样对自己以后会有帮助

4年前 评论
oliver-l (楼主) 4年前

打个比方,三轮车正常人谁都可以骑,上去就会骑着走。后来觉得自己还可以,就换成了自行车。如果想再跑快点,就考了驾照买了汽车。

楼主如果初学阶段用宝塔是很适合的,但成长的同时不要依赖它。加油

4年前 评论
oliver-l (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!