安装环境:
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编译完成后,我们看到如下界面,说明我们安装成功了。
我们在redis-5.0.8/src目录下会看到多了几个可执行文件,其中redis-server是用来启动服务用的,redis-cli是用来启动客户端用的,其他的还不清楚,大家可以查一下。
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)下图第二个红框所示。
可以看到在/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.
4、启动redis(systemctl start|restart|stop|status redis)
systemctl start redis