当前位置:首页 > 问答 > 正文

动Redis怎么弄自启动啊,重启也能自动起来那种感觉挺方便的吧

你说的这个需求特别实际,谁也不想每次服务器重启后,还得手动去敲命令启动Redis,太麻烦了,这事儿其实不难,核心就是让系统在开机的时候,自动帮你把Redis服务拉起来,不同的操作系统方法不一样,但思路都差不多,就是把Redis注册成一个系统服务,然后设置成开机自启,下面我就分别说说在Windows和Linux这两种最常见的系统上怎么弄。

在Windows系统上设置Redis自启动

Windows系统下,我们通常把它安装成一个Windows服务,这样它就能跟着系统一起启动了。

你肯定已经下载了Redis的Windows版本,解压之后,你会看到一个叫 redis-server.exe 的文件,这就是Redis的服务端程序,光双击它虽然能运行,但那不是服务的方式,一个黑窗口开着,一不小心关了服务就停了。

我们要用的是Windows自带的命令行工具,但记得用管理员身份运行,不然没有权限安装服务,打开命令提示符(CMD)或者PowerShell后,你需要切换到Redis所在的目录,你的Redis解压在 D:\redis 目录下,就先输入 D: 回车,再输入 cd redis 回车。

关键命令来了,输入以下命令并回车:

redis-server.exe --service-install redis.windows.conf --loglevel verbose --service-name Redis

我来简单解释一下这几个参数是干嘛的:

  • --service-install:这个就是告诉系统,我要安装一个服务。
  • redis.windows.conf:这是Redis的配置文件路径,一定要写上,不然Redis会用默认配置,可能不是你想要的。
  • --loglevel verbose:设置日志的详细程度,这样出问题了方便查日志。
  • --service-name Redis:给你要安装的服务起个名字,这里叫“Redis”,你可以改成别的。

执行成功后,不会有太花哨的提示,通常就安静地回到命令行,这时候你可以按 Win + R 键,输入 services.msc 打开“服务”窗口,在长长的服务列表里找找,应该能看到一个名叫“Redis”(或者你自定义的名字)的服务,它的“启动类型”默认是“手动”。

右键点击这个“Redis”服务,选择“属性”,在“常规”选项卡里,把“启动类型”从“手动”改成“自动”,这样,以后电脑一开机,这个服务就会自己启动了,你还可以在同一个界面里点击“启动”按钮,现在就把服务开起来,不用重启电脑测试。

动Redis怎么弄自启动啊,重启也能自动起来那种感觉挺方便的吧

以后你想停止或重启Redis服务,就不用去任务管理器里找进程了,直接来这个“服务”窗口操作,非常方便。

在Linux系统上设置Redis自启动

Linux系统更常用于服务器环境,所以让Redis自启动是标配技能,现在主流的Linux发行版,比如CentOS 7、Ubuntu 18.04以后版本,一般都使用 systemd 这个系统和服务管理器,方法比Windows还简单。

你需要确保Redis已经正确安装好了,并且能用 redis-cli 正常连接,通常通过包管理器安装的Redis,比如用 apt-get install redis-serveryum install redis,它大概率已经帮你配置好自启动了,你可以先打个命令验证一下:

systemctl status redis-server

如果看到显示服务是 active (running),并且下面有几行字写着 Loaded: loaded (/lib/systemd/system/redis-server.service; enabled;),注意这个 enabled,就说明它已经是开机自启的了,如果只是 loaded 而没有 enabled,那就需要手动开启。

动Redis怎么弄自启动啊,重启也能自动起来那种感觉挺方便的吧

如果确实没有自启动,或者你是自己编译安装的Redis,需要手动配置一下,开启自启动的命令非常简单,还是用 systemctl

sudo systemctl enable redis-server

这个命令的作用就是告诉系统:“下次开机的时候,记得把redis-server这个服务给我启动起来。” 执行完,它可能会输出一行提示,类似于“Created symlink ...”,这是在创建符号链接,不用管,成功了就行。

同样,你可以立刻启动服务,而不必重启服务器:

sudo systemctl start redis-server

之后,再使用 systemctl status redis-server 检查一下状态,确认它已经跑起来了。

万一你的Linux系统是比较老的版本,还在使用 SysVinit 或者 Upstart 作为初始化系统,命令会不太一样,可能是用 chkconfig redis on 或者 update-rc.d redis-server defaults 这样的命令,但现在遇到这种情况不多了,真遇到了可以再查具体系统的文档。

总结一下

无论Windows还是Linux,让Redis自启动的本质就是“服务化”,Windows下通过命令行安装服务并在服务管理器里设成自动;Linux下(现代发行版)一条 systemctl enable 命令就搞定了,设置好后,你就可以安心重启服务器了,再也不用担心Redis躺在那儿不起来,这种“无感”的体验,正是运维工作里追求的那种方便。