一、背景
- 内部平台活动邀请排行榜api需要用到redis的有序集合进行快速排序
二、安装部署
1,在CentOS操作系统下安装redis
- 打开终端,使用以下命令安装EPEL存储库(Extra Packages for Enterprise Linux):
yum install epel-release
- 安装Redis服务器:
yum install redis
- 安装完成后,Redis服务器会自动启动。你可以使用以下命令检查Redis服务器的状态:
systemctl status redis
如果服务器正常运行,你将看到一条包含"active (running)"字样的输出。
若要停止Redis服务器,可以使用以下命令:
systemctl stop redis
若要重新启动Redis服务器,可以使用以下命令:
systemctl restart redis
三、出现问题
当安装完,运行 systemctl start redis时,报错了
执行上面提示的两个命令,结果如下:
第二张图里
7月 15 17:40:06 robot-release-1 redis-server[19539]: >>> 'logfile /var/log/redis/redis.log'
7月 15 17:40:06 robot-release-1 redis-server[19539]: Can't open the log file: Permission denied
可以发现是对日志文件/var/log/redis/redis.log权限不足
查看了该文件属于root用户root组
说明这个服务系统启动后是redis组的,所以改文件权限为redis组即可
chown redis:redis /var/log/redis/redis.log
按照上面执行修改权限命令,还是不行
因为是一个日志文件,怀疑是var文件夹的权限问题,尝试在/data里新建一个文件
touch /data/redis/redis-server.log
这里修改了日志路径,需要修改redis配置文件
which redis-server // 输出配置文件位置:/etc/redis.conf
cd /etc
vim redis.conf // 修改日志路径,保存退出
chown redis:redis /data/redis/redis-server.log // 修改日志文件权限
systemctl restart redis // 开启服务
systemctl status redis // 查看状态
正常启动了!
四、相关命令
1、 设置redis 密码
requirepass xxx
2、查看redis进程
ps -aux | grep redis
使用kill命令根据id杀死进程 kill 1643
2,设置开机自启动
systemctl enable redis
注意:设置redis.conf中daemonize为yes,确保守护进程开启(如果为no,这里配置redis的开机自启是会失败的)
这样在系统启动时,Redis服务器会自动启动。
3,图形界面进行连接
如果长时间连接不上,可能有两种可能性
a)bind了127.0.01:只允许在本机连接redis
b)protected-mode设置了yes(使用redis desktop manager工具需要配置,其余不用)
解决办法:
# 打开redis配置文件
vi /etc/redis.conf
# 找到 bind 127.0.0.1 将其注释
# 找到 protected-mode yes 将其改为
protected-mode no
三、总结和思考
1,是否可以用pm2进程守护来管理redis的自启动
pm2 start redis-server
尝试了,虽然能正常启动,但并没有读取到修改后的配置文件/etc/redis.conf,导致图形界面连接不进来,读取的应该是默认安装目录下的配置文件,忙着搬砖了,有兴趣的朋友可以研究一下~
相关资料: