今天写这篇的原因是刚好在搭建一个东西需要用到redis环境,关于原因也就不多说了。
Redis是什么这种问题也不具体说了,就是一个基于内存的数据库软件。这边贴一段百科的介绍,具体的可以自己去查资料。
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
这篇的操作是基于linux的安装,redis版本5.0,Windows可以退散了。
这边就不扯其他的了,单刀直入地讲了
源码编译安装
为什么选择源码编译安装,这点我在介绍【nginx编译安装】那篇博文里讲过一点原因,redis的话主要还是因为软件包管理安装的版本比较老吧。
惯例编译安装前需要安装gcc和make,如果是ubuntu可以直接安装build-essential,这点我在nginx编译安装那篇也说过了,不赘述。
首先在官网下载redis源码包后解压,进入解压的源码包目录直接make、make install两步走就行了
这边make install默认的redis安装位置在/usr/local目录下,二进制文件在/usr/local/bin,不是root用户的话可能需要sudo
如果需要改变安装位置的话可以在make install后指定PREFIX
譬如make install PREFIX=/usr/local/redis修改安装位置在/usr/local/redis下,二进制文件就在/usr/local/redis/bin里。
我这里还是按照默认的位置安装,这样的话安装完成后可以直接使用redis-server测试运行一下。
配置文件
redis源码包里有示例的配置文件,我们直接使用即可,不过建一个专门存放redis配置文件的目录比较好,一般软件的配置文件都放在/etc下
我们就在/etc下创建一个redis的目录用来存放redis的配置文件,然后把源码包下的示例配置文件复制过去,并重命名为6379.conf
1 | sudo mkdir /etc/redis |
这里重命名的6379是redis默认的启动端口。
现在修改一下6379.conf这个配置文件
将里面的daemonize no改为yes,启用后台运行
添加服务项
这边参考了这篇博文的内容,感兴趣可以看看
关于linux的系统服务管理的说明
linux的系统服务管理命令主要有两个,service和systemctl。
现在新版本发行版的linux基本上都是用systemctl,然后service命令也可以使用,但是执行时会被重写成systemctl命令,所以实际上用的还是systemctl。服务项的配置一般是放在/etc/systemd/system或者/lib/systemd/system下的,这个根据发行版本不同略有区别,自行确认。
老一点的发行版本可能用的就是原来的service命令,它的命令脚本位置一般在/etc/init.d或者/etc/rc.d/init.d下,根据发行版本不同略有区别,自行确认。
这边接下来就根据这两个不同情况来说明配置方法:
systemctl(systemd)
上面也说过了,服务配置可能放在/etc/systemd/system或者/lib/systemd/system下,自行确认。
现在服务配置的目录下新建一个redis.service脚本,内容如下
1 | [Unit] |
这里要注意,里面变量的具体值要是你自身安装的实际情况自行修改,譬如你修改了安装位置,那么ExecStart项里redis-server的绝对路径肯定也是要修改的
然后提一下这个PIDFile的值是和6379配置文件里的pidfile项一致。
接下来重载一下系统服务,就可以使用redis服务了
1 | systemctl daemon-reload # 重载系统服务 |
service(init.d)
一开始也说过了,服务配置脚本位置可能在/etc/init.d或者/etc/rc.d/init.d下,自行确认
在redis的源码包下的utils目录里有redis服务的启动脚本,我们只需要将它复制到系统服务配置的目录下即可,这里假设是/etc/init.d
1 | sudo cp /your/redis/utils/redis_init_script /etc/init.d/redis |
然后将下面两行的内容添加到redis启动脚本的第二、三行(也就是#!/bin/sh的下面)
1 | # chkconfig: 2345 90 10 |
指的是redis服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,关闭的优先级是10。
接下来就可以添加并使用服务了
1 | chkconfig --add redis # 如果没报错的话,说明成功,可以用 |