安装环境:

linux:rhel7.4 64位

redis版本:redis-5.0.8.tar.gz


Redis安装

redis官网地址:http://www.redis.io/

下载的版本是5.0.8


一、安装redis服务

1、安装gcc环境

yum install gcc-c++ -y       yum安装gcc

make distclean      清空上次编译失败的残留文件


2、下载源码,解压后编译源码

[root@localhost ~]# wget http://download.redis.io/releases/redis-4.0.2.tar.gz

[root@localhost ~]# tar -xfredis-5.0.8.tar.gz

[root@localhost ~]# cd redis-5.0.8

[root@localhost redis-4.0.2]# make  编译


3、make编译完成后,我们看到如下界面,说明我们安装成功了。

rhel7(centos7.5)下安装redis服务_第1张图片

我们在redis-5.0.8/src目录下会看到多了几个可执行文件,其中redis-server是用来启动服务用的,redis-cli是用来启动客户端用的,其他的还不清楚,大家可以查一下。

rhel7(centos7.5)下安装redis服务_第2张图片

4、默认make完后,我们启动redis服务的话,每次都要进入到安装目录,这样很繁琐,所以我们可以make之后在执行make install PREFIX=/web/redis 指定安装目录,就会在/web/redis目录下生成一个bin路径,/web/redis/bin下面是生成的二进制可执行的文件

注:如果是普通用户执行make install是需要需要root权限的,要用sudo make install


5、设置服务(service管理)

首先将redis-5.0.8/utils/redis_init_script文件复制到/etc/init.d下,同时易名为redis。执行命令

# cp redis-5.0.8/utils/redis_init_script /etc/init.d/redis

vi /etc/rc.d/init.d/redis

在文档第二行添加

# chkconfig: 234580 90。

确保/web/redis/bin中有redis-server和redis-cli文件(如果有些人安装是没有用make install命令,是需要在安装目录下复制redis-server和redis-cli到/usr/local/redis/bin目录下,否则服务启动时找不到redis-server)下图第二个红框所示。

rhel7(centos7.5)下安装redis服务_第3张图片

可以看到在/etc/init.d/redis文件中有这么一行:CONF="/web/redis/${REDISPORT}.conf"。于是将redis配置文件拷贝到/web/redis/conf下,同时易名为6210.conf。

# mkdir /web/redis/conf

# cp /web/redis-5.0.8/redis.conf /web/redis/conf/6210.conf


6、修改6210.conf配置文件

# 指定redis只接收来自于该IP地址的请求,如果不进行设置,那么将处理所有请求,# 在生产环境中最好设置该项
bind 127.0.0.1    本地能登录
bind 0.0.0.0    远程也可以登录

# 指定redis运行的端口,默认是6379
port 6210

# 设置客户端连接时的超时时间,单位为秒。当客户端在这段时间内没有发出任何指令,那么关闭该连接# 0是关闭此设置timeout 0
#daemonize no 默认情况下,redis不是在后台运行的,如果需要在后台运行,把该项的值更改为yes
daemonize yes
 
# 当redis在后台运行的时候,Redis默认会把pid文件放在/var/run/redis.pid,你可以配置到其他地址。
# 当运行多个redis服务时,需要指定不同的pid文件和端口
#pidfile /var/run/redis_6379.pid
pidfile /var/run/redis_6210.pid
 
# 指定日志记录级别
# Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose
# debug        记录很多信息,用于开发和测试
# varbose      有用的信息,不像debug会记录那么多
# notice  普通的verbose,常用于生产环境
# warning      只有非常重要或者严重的信息会记录到日志
loglevel notice

# 配置log文件地址
# 默认值为stdout,标准输出,若后台模式会输出到/dev/null
#修改生成默认日志文件位置
#logfile ""
logfile "/web/redis/logs/redis.log"

# 配置持久化文件存放位置
dir /web/redis/data/redisData


二、用systemctl管理redis服务

1、创建systemctl 服务

用service来管理服务的时候,是在/etc/init.d/目录中创建一个脚本文件,来管理服务的启动和停止;在systemctl中,也类似,文件目录有所不同,在/lib/systemd/system目录下创建一个脚本文件redis.service,里面的内容如下:

方法一:命令有stat、stop、reload

# vi /lib/systemd/system/redis.service
[Unit]
Description=Redis
After=network.target
 
[Service]
Type=forking
ExecStart=/web/redis/bin/redis-server /web/redis/conf/6210.conf
ExecReload=/web/redis/bin/redis-server -s reload
ExecStop=/web/redis/bin/redis-server -s stop
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

方法二:命令有star、stop

[Unit]
Description=RedisAfter=network.target

[Service]
ExecStart=/usr/local/bin/redis-server /usr/local/redis/redis.conf --daemonize no
ExecStop=/usr/local/bin/redis-cli -h -p 6379 shutdown

[Install]
WantedBy=multi-user.target

参数说明:

[Unit] 表示这是基础信息
Description 是描述
After 是在那个服务后面启动,一般是网络服务启动后启动
[Service] 表示这里是服务信息
ExecStart 是启动服务的命令
ExecReload 是重启服务的指令
ExecStop 是停止服务的指令
[Install] 表示这是是安装相关信息
WantedBy 是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。


2、刷新配置

刚刚配置的服务需要让systemctl能识别,就必须刷新配置
#systemctl daemon-reload


3、设置开机启动(系统初始化时自动启动服务)

# systemctl enable redis.service
Created symlink from /etc/systemd/system/multi-user.target.wants/redis.service to /usr/lib/systemd/system/redis.service.

rhel7(centos7.5)下安装redis服务_第4张图片


4、启动redis(systemctl start|restart|stop|status redis)

systemctl start redis