关于redis的安装,小编也是先后遇到了好多问题,比如redis的编译问题,比如网络的连接问题,下面就和大家分享一下redis的安装和安装过程中遇见的一些问题。
首先我们需要先下载redis相关的tar包,我这里用的是redis-5.0.8的版本,将redis的包下载到本地后,需要将redis的tar包上传至linux的服务器上,并用tar -zxvf命令将上传的redis的tar.gz的包解压。(如果大家下载的是tar.gz格式的压缩文件,那么就用tar -zxvf的命令就可以了,但是如果是其他的压缩文件格式,需要用对应的命令进行解压,下面为大家列举一些)
文件压缩格式 | 对应解压命令 |
.tar | tar –xvf |
.tar.Z | tar –xZvf |
.tar.bz2 | tar -xjvf |
.rar | unrar |
.zip | unzip |
将redis解压后,需要对redis进行安装(因为redis是C语言编写的,所以需要对redis进行编译),对redis进行编译时,运用的是make命令,在执行make命令时,小编前前后后遇到不少问题。
首先小编遇到的第一个问题是没有编译环境(gcc环境),所以先要进行编译环境的安装,我们需要执行yum -y install gcc gcc-c++命令来进行编译环境的安装。
接下来就是遇到的第二个问题,在小编执行yum的命令时,出现了Could not retrieve mirrorlist报错,出现了这个问题呢,首先要检查网络配置,在/etc/sysconfig/network-scripts目录下会有一个ifcfg-XXX的文件,因为大家安装的系统版本不同,可能这个文件后面的名称也不一样,小编这里的文件是ifcfg-ens33,将里面的ONBOOT=no改成ONBOOT=yes,之后执行命令service network restart将网络服务重启。在网络重启的过程当中,小编又遇到了一个问题,在执行service network restart命令时,遇到了这样的一段报错
之后小编分别使用了提示中的两个命令去查看原因,systemctl status network.service命令和journalctl -xe命令,得到的结果是这样的
发现竟然是因为小编的/etc/sysconfig/network-scripts这个目录下存在除ifcfg-ens33之外的配置文件ifcfg-eth0,找到了问题,那么解决方式就很简单,因为怕出现问题,那么就先把ifcfg-eth0这个文件备份到本地,之后删除这个文件,删除了这个文件后,再次执行service network restart,发现网络服务已经重启成功
网络问题排查好了后,小编又重新运行了yum -y install gcc gcc-c++命令,发现还是报一样的错误,这就有点棘手了,之后小编在网上搜索了很多帖子,其中看到一个是说因为/etc/yum.repos.d这个目录下的CentOS-Base.repo这个文件可能不是最新的,所以小编就在这个地址http://mirrors.aliyun.com/repo/Centos-7.repo下载了最新的文件,还是一样的,怕出现问题,先将CentOS-Base.repo文件备份或重命名,之后将下载下来的Centos-7.repo文件重命名为CentOS-Base.repo,并放在/etc/yum.repos.d目录下。之后再次执行yum -y install gcc gcc-c++。
虽然这此执行依旧没有成功,但是他报了域名无法解析的错误,看到这个错误后,小编尝试用ping命令来测试,看看是不是网络没有连接好,敲击ping x.x.x.x命令后发现报错为network is unreachable,果然是网络的问题,经过查找后,发现小编的虚拟机的网络是指并非为桥接或NAT
之后将网络连接更改为桥接后,再次执行yum -y install gcc gcc-c++,发现gcc环境安装成功。
下面就要开始编译redis,进入到解压好的redis目录,敲击make命令,进行redis编译,如果执行make命令报错的话,可以先执行一下make disclean,在执行make命令,编译后,我么需要对redis进行安装,执行make install命令对redis进行安装,redis的默认安装路径为/usr/local/bin,当然,我们也可以指定目录去安装redis,安装后我们就可以进入redis的src目录用./redis-server命令启动redis啦,在启动redis的时候,大家可以将redis配置文件里面的daemonize属性设置为yes,也可以使用./redis-server &来启动redis,防止大家启动后按ctrl+z将redis服务挂起。