内部平台eggjs开发关于Redis部署

203 阅读3分钟

一、背景

  • 内部平台活动邀请排行榜api需要用到redis的有序集合进行快速排序

二、安装部署

1,在CentOS操作系统下安装redis

  1. 打开终端,使用以下命令安装EPEL存储库(Extra Packages for Enterprise Linux):
yum install epel-release
  1. 安装Redis服务器:
yum install redis
  1. 安装完成后,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权限不足

blog.csdn.net/magicianofc…

查看了该文件属于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 // 查看状态

正常启动了!

59577e003318.png

四、相关命令

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,导致图形界面连接不进来,读取的应该是默认安装目录下的配置文件,忙着搬砖了,有兴趣的朋友可以研究一下~

相关资料:

blog.csdn.net/magicianofc…

blog.csdn.net/qq_41915181…