redis启动不了 redis-server.service failed because a timeout was exceeded

12.28K 浏览服务器运维

redis启动不了 redis-server.service failed because a timeout was exceeded

在阿里云ubuntu18.04系统里安装redis,发现报错

redis-server.service - Advanced key-value store    Loaded: loaded (/lib/systemd/system/redis-server.service; disabled; vendor preset: enabled)    Active: activating (start) since Tue 2019-01-22 14:56:29 CST; 31s ago      Docs: http://redis.io/documentation,            man:redis-server(1)   Process: 1145 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS)     Tasks: 0 (limit: 4667)    CGroup: /system.slice/redis-server.service Jan 22 14:56:29 iZrj911fdcw9a9969g0hdaZ systemd[1]: Starting Advanced key-value store... Jan 22 14:56:29 iZrj911fdcw9a9969g0hdaZ systemd[1]: redis-server.service: Can't open PID file /var/run/redis/redis-server.pid (yet?) after star

因为redis默认是只支持ipv6访问,(bind 127.0.0.1 ::1)。

如果服务器没设置ipv6的话,就会报错。

我们需要把

bind 127.0.0.1 ::1

改成

bind 127.0.0.1

改成ipv4网络。

编辑文件/etc/redis/redis.conf,将bind 127.0.0.1 ::1修改为bind 127.0.0.1

再重新启动下redis就好了。

systemctl restart redis-server.service

这个时候仅能从本地访问,如果要从远程访问,需要编辑文件/etc/redis/redis.conf,将bind 127.0.0.1修改为bind 0.0.0.0

这时即可从远程访问了。

Authentication

我们还可以给redis设一个密码

首先我们用如下密码生成一个密码

:~# echo "zouhongzhao" |sha256sum 0bde5ac14dddc5f04da9d5b67ce823deb6d28d212950de7e44585104f2ab202b  -

编辑文件/etc/redis/redis.conf,找到# requirepass foobared,去掉注释,然后将其改为requirepass 0bde5ac14dddc5f04da9d5b67ce823deb6d28d212950de7e44585104f2ab202b,重启redis服务器,然后用客户端工具去连接。

:~$ redis-cli -h zouhongzhao 
zouhongzhao:6379> ping (error) NOAUTH Authentication required. 
zouhongzhao:6379> auth 0bde5ac14dddc5f04da9d5b67ce823deb6d28d212950de7e44585104f2ab202b OK 
zouhongzhao:6379> keys * 1) "k1"
test.com:6379> exit 
:~$

最后于 5月前 被admin编辑 ,原因:
0