redis后台运行并指定日志文件_Redis

redis安装好后,执行src/redis-server命令启动redis,我们会发现屏幕上会有日志输出,并且当前会话被redis给阻塞了,如果按CTRL+C的话redis进程也会停止。

如何让redis后台运行并指定日志文件呢?

 

1、配置后台运行

只要在redis.conf中,将

daemonize no

修改为

daemonize yes

即可。

当以后台运行的方式启动redis,redis会生成一个pid文件,redis.conf中可以设置pid文件的位置。

pidfile /var/run/redis_6379.pid

当redis进程关闭时,redis会删除这个pid文件。

 

2、指定日志文件和日志级别

在redis.conf中,将

logfile ""

修改为

logfile /var/log/redis.log

即可。

logfile默认为空字符串。如果是空字符串,则使用标准输出;如果是空字符串且是后台运行,则日志被发送到/dev/null。

在类Unix系统中,/dev/null称为空设备或黑洞,是一个特殊的设备文件,它丢弃一切写入其中的数据,但报告写入操作成功

另外,我们可以指定日志级别。

在redis.conf中配置

loglevel warning

即可。日志级别从低到高分别为:debug、verbose、notice、warning。

 

3、停止redis

一般地,在linux系统中可以使用kill命令杀死进程,然而当redis正在从内存往磁盘持久化数据时,如果此时突然强制杀死进程,就会导致数据丢失。因为我们应该合理关闭redis。

可以在redis客户端执行shutdown命令关闭redis。

  • ./redis.cli shutdown

shutdown命令后可跟save或nosave参数,表示是否保存数据。

当redis收到客户端的shutdown命令时,首先会断开客户端连接,然后会往磁盘保存数据,最后再停止进程。如下图,是redis收到shutdown命令后的一段日志。

redis后台运行并指定日志文件_数据库_02

 

4、运行时修改配置

可以在启动时命令行中指定配置

  • src/redis-server redis.conf --loglevel verbose

redis运行时可以在客户端执行如下命令读写运行时配置。

  • config get loglevel
  • config set loglevel notice(不是所有命令都支持运行时修改配置)

 

5、redis设置密码

这个比较简单,只需要在redis.conf中增加如下配置项即可。

requirepass ok

那redis客户端如何登录设置了密码的redis服务端呢?答案是使用auth命令,如下图所示。

redis后台运行并指定日志文件_Redis_03