主要解决两个方面问题。1)linux端启动redis不成功;2)resp无法连接redis服务器;
前提配置情况:linux端直接命令行输入 redis-server 可以正常启动redis。修改redis.conf配置文件内容:
# 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
# 守护进程,修改为yes后即可后台运行
daemonize yes
# 密码,设置后访问Redis必须输入密码
requirepass 123321
建立系统服务文件:
vi /etc/systemd/system/redis.service
输入以下内容
# 内容
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /usr/local/src/redis-6.2.6/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
重载系统文件
systemctl daemon-reload
1、linux端启动redis不成功
报错信息:
redis.service: main process exited, code=exited, status=1/FAILURE
Unit redis.service entered failed state.
redis状态为failed
解决方法:
虽然重启了redis.service,但是基于以前service文件的进程还没有消灭,需要手动消灭
1)查看redis进程
ps aux | grep redis
2)杀死上述无关进程
kill -9 PID
3)查看是否有其他进程占用端口(若没有输出则说明没有其他进程占用)
lsof -i :6379
4)重启redis,并查看状态,redistribution启动成功
# 重启
systemctl restart redis
# 查看状态
systemctl status redis
2、 resp无法连接redis服务器
报错:
解决方案:
1)Linux端运行redis,关闭防火墙
2)注意看虚拟机的ip地址有没有错误,有时候重启虚拟机ip地址会发生变化。
3)连接成功
#放通6379/tcp端口
firewall-cmd --zone=public --permanent --add-port=6379/tcp
firewall-cmd --reload
#直接关闭防火墙
systemctl stop firewalld.service