环境准备
- CentOS Linux release 7.X
- redis-3.2.1.tar.gz(由于当时项目用了3.2.1,本文章先用3.2.1作为演示例子,经本人验证,6.2.5版本同样适用以下安装过程)
redis-6.2.5.tar.gz
安装过程
安装redis的方式有很多种,官方推荐有三种方式安装(源码包、docker、云服务安装)
https://redis.io/download
而我们这一次将以源码包的方式进行安装。
1、下载源码包(下载目录根据自己服务器的用户文件夹而定)
cd /home/firefly
wget https://download.redis.io/releases/redis-3.2.1.tar.gz
这个时候,我们在/home/firefly/的目录下就有了redis-3.2.1.tar.gz。
2、解压文件夹,编译安装。
tar -zxvf redis-3.2.1.tar.gz
cd redis-3.2.1
make
问题一:这个时候,安装服务器出现了以下安装错误信息。(如果没有报错,可以忽略问题一)
出现以上问题的原因是系统没有安装gcc编译器所以需要安装,可以使用yum源进行安装;
yum -y install gcc+ gcc-c++
这个时候,我们重新执行make命令,紧接着,我们在安装过程中,遇到问题二,出现以下安装错误信息:jemalloc/jemalloc.h: no such file or directory
这个问题的正确解决方案是:
make distclean && make
导致这个问题的原因是,我们在开始执行make 时遇到了错误(大部分是由于gcc未安装),然后我们安装好了gcc 后,我们再执行make ,这时就出现了jemalloc/jemalloc.h: No such file or directory。这是因为上次的编译失败,有残留的文件,我们需要清理下,然后重新编译就可以了。
当我们看到以下截图,说明make成功了!
紧接着我们再执行:
cd src
make install PREFIX=/usr/local/redis
这个时候,redis安装成功了,这个时候你可以看到/usr/local/redis的下面有一个bin目录。
移动配置文件到安装目录下
mkdir /usr/local/redis/etc
cp /home/firefly/redis-3.2.1/redis.conf /usr/local/redis/etc/
修改redis.conf
vi /usr/local/redis/etc/redis.conf
这个时候我们要做以下几件事情:
1、设置redis为后台启动。
daemonize no 改成daemonize yes
2、设置Redis连接密码
将requirepass foobared的foobared改成自己设置的密码,并且去掉#号放开注释。
3、允许远程访问设置。(如果redis应用跟WEB应用在同一个机器,则不需要远程设置,保留原来的127.0.0.1即可)
将protected-mode由yes改成no
bind 127.0.0.1 这一行给注释掉,加上一行:bind 0.0.0.0
启动redis
我们cd /usr/local/redis/bin目录下,启动redis服务。
./redis-server ../etc/redis.conf
测试redis
我们cd /usr/local/redis/bin目录下,
./redis-cli
这个时候,redis测试成功!
远程访问redis
这个时候,我开启了另一台服务器192.168.138.119。与此同时,我们需要在防火墙配置对192.168.138.119的IP地址开放6379端口的放通。
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.138.119" port protocol="tcp" port="8443" accept"
systemctl restart firewalld.service
redis设置成服务,并且开机启动
一、如果要将redis设置成服务,则需要做以下几件事情。
1、将redis.conf的daemonize改成no。(因为我们目前要求system作为一个daemon去启动redis,所以redis必须设置为不在后台启动,而让system去启动redis)
什么是守护进程?守护进程是创建一个进程,然后再把程序放在这个进程的子进程下运行,最后再退出这个进程,那么这样子,这个子进程就在后台运行了。
2、移动到/etc/systemd/system,编辑redis-server.service服务脚本。
[Unit]
Description=The redis-server Process Manager
After=syslog.target network.target
[Service]
Type=simple
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID
[Install]
WantedBy=multi-user.target
3、执行以下三条命令。
#因为我们添加了新的配置文件redis-server.service,所以要执行这个命令,重启服务,重新刷新服务列表。
systemctl daemon-reload
#将服务立即启动,下次不启动
systemctl start redis-server.service
#每次重启服务器会自启动
systemctl enable redis-server.service
4、我们现在测试redis服务到底有没有归system守护进程启动和重启服务器后的自启动情况。
注意事项
1、注意自己安装所在的linux服务器上有没有安装好gcc环境。
最后感言
勉励自己,告诉自己,并不是因为看到希望才坚持,而是坚持了才有机会看到希望。