CentOS环境下安装Redis

前言

安装Redis需要知道自己需要哪个版本,有针对性的安装

比如如果需要redis GEO这个地理集合的特性,那么redis版本就不能低于3.2版本,由于这个特性是3.2版本才有的。

另外需要注意的是,Redis约定次版本号(即第一个小数点后的数字)为偶数的版本是稳定版(如2.8版、4.0版),奇数版本是非稳定版(如2.7版、2.9版),生产环境下一般需要使用稳定版本。


下载解压,编译安装

下载安装包

进入 redis官网,查看最新的稳定版本

wget http://download.redis.io/releases/redis-4.0.11.tar.gz

解压安装包并安装

tar xzf redis-4.0.2.tar.gz
cd redis-4.0.2
make
make install

Redis没有其他外部依赖,安装过程很简单。

编译后在Redis源代码目录的src文件夹中可以找到若干个可执行程序,

安装完后,在/usr/local/bin目录中可以找到刚刚安装的redis可执行文件。

如下图:

[root@vwhm.net bin]# pwd
/usr/local/bin
[root@vwhm.net bin]# ls -l
total 77080
-rwxr-xr-x 1 root root      817 Jun  4 20:46 pear
-rwxr-xr-x 1 root root      838 Jun  4 20:46 peardev
-rwxr-xr-x 1 root root      754 Jun  4 20:46 pecl
lrwxrwxrwx 1 root root        9 Jun  4 20:46 phar -> phar.phar
-rwxr-xr-x 1 root root    53490 Jun  4 20:46 phar.phar
-rwxr-xr-x 1 root root 28271696 Jun  4 20:46 php
-rwxr-xr-x 1 root root 28158632 Jun  4 20:46 php-cgi
-rwxr-xr-x 1 root root     2225 Jun  4 20:46 php-config
-rwxr-xr-x 1 root root     4526 Jun  4 20:46 phpize

-rwxr-xr-x 1 root root  2451672 Sep  2 22:12 redis-benchmark
-rwxr-xr-x 1 root root  5775968 Sep  2 22:12 redis-check-aof
-rwxr-xr-x 1 root root  5775968 Sep  2 22:12 redis-check-rdb
-rwxr-xr-x 1 root root  2617768 Sep  2 22:12 redis-cli
lrwxrwxrwx 1 root root       12 Sep  2 22:12 redis-sentinel -> redis-server
-rwxr-xr-x 1 root root  5775968 Sep  2 22:12 redis-server


直接启动

直接运行/usr/local/bin目录下的 redis-server 即可启动Redis

[root@localhost bin]# redis-server

简单使用redis,

也可以访问redis官网的在线交互式教程:

$ src/redis-cli
redis> set girlName 面码
OK
redis> get girlName
"面码"

配置初始化脚本,随开机自启动

Redis源代码目录的utils文件夹中有一个名为redis_init_script初始化脚本文件

需要配置Redis的运行方式持久化文件、日志文件的存储位置


步骤如下:

1、配置初始化脚本

首先将redis源码解压后,目录下的/utils/redis_init_script初始化脚本复制到 /etc/init.d 目录中,

取个新的文件名为: redis_端口号,

cp /root/sg_redis/redis-4.0.11/utils/redis_init_script /etc/init.d/redis_6379

其中端口号表示想要让Redis监听的端口号(如:6379),未来客户端通过该端口连接Redis。

然后打开并修改脚本文件中第n行的REDISPORT变量的值为同样的端口号。


2、建立以下需要的文件夹。

目录名 Value
/etc/redis 存放Redis的配置文件
/var/redis/端口号(如:6379) 存放Redis的持久化文件

3、修改配置文件
首先将配置文件模板(如: /root/sg_redis/redis-4.0.11/redis.conf)复制到 /etc/redis 目录中,

并且以端口号命名(如“6379.conf”)

cp  /root/sg_redis/redis-4.0.11/redis.conf /etc/redis/6379.conf

然后按照下表对其中的部分参数进行编辑。

参数 说明
daemonize yes 使Redis以守护进程模式运行
pidfile /var/run/redis_端口号.pid 设置Redis的PID文件位置
port 端口号 设置Redis监听的端口号
dir /var/redis/端口号 设置持久化文件存放位置

具体位置如下:

# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
daemonize no

# If a pid file is specified, Redis writes it where specified at startup
# and removes it at exit.
#
# When the server runs non daemonized, no pid file is created if none is
# specified in the configuration. When the server is daemonized, the pid file
# is used even if not specified, defaulting to "/var/run/redis.pid".
#
# Creating a pid file is best effort: if Redis is not able to create it
# nothing bad happens, the server will start and run normally.

pidfile /var/run/redis_6379.pid

# Accept connections on the specified port, default is 6379 (IANA #815344).
# If port 0 is specified Redis will not listen on a TCP socket.

port 6379

# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# The Append Only File will also be created inside this directory.
#
# Note that you must specify a directory here, not a file name.

# dir ./

dir /var/redis/6379


初步实现通过命令启动

现在可以使用下面的命令来启动和关闭Redis了

/etc/init.d/redis_6379 start
/etc/init.d/redis_6379 stop

 


[root@vwhm.net init.d]# /etc/init.d/redis_6379 start

Starting Redis server...
31923:C 02 Sep 22:48:28.801 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
31923:C 02 Sep 22:48:28.801 # Redis version=4.0.11, bits=64, commit=00000000, modified=0, pid=31923, just started
31923:C 02 Sep 22:48:28.801 # Configuration loaded


随系统自启动

让Redis随系统自动启动,这还需要对Redis初始化脚本进行简单修改,

执行命令:

vim /etc/init.d/redis_6379

在打开的redis初始化脚本文件头部第四行的位置,追加下面两句

# chkconfig: 2345 90 10 
# description: Redis is a persistent key-value database

追加后效果如下:

#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
# as it does use of the /proc filesystem.

### BEGIN INIT INFO
# Provides:     redis_6379
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Redis data structure server
# Description:          Redis data structure server. See https://redis.io
### END INIT INFO

REDISPORT=6379

上图框中顶部有两行就是追加的注释,添加完毕后进行保存,

即可通过下面的命令将Redis加入系统启动项里了

// 设置开机执行redis脚本
chkconfig redis_6379 on

 


[root@vwhm.net init.d]# chkconfig redis_6379 on
[root@vwhm.net init.d]# 


高级启动

通过上面的操作后,

从今以后也可以直接用下面的命令对Redis进行启动和关闭了,

如下所示:

service redis_6379 start
service redis_6379 stop

 


[root@vwhm.net init.d]# service redis_6379 start
Starting Redis server...
31968:C 02 Sep 22:55:10.397 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
31968:C 02 Sep 22:55:10.397 # Redis version=4.0.11, bits=64, commit=00000000, modified=0, pid=31968, just started
31968:C 02 Sep 22:55:10.397 # Configuration loaded
[root@vwhm.net init.d]# service redis_6379 stop
Stopping ...
Redis stopped


打完收功!

经过上面的部署操作后,将来系统重启,Redis也会随着系统自动启动

并且上面的步骤里也配置了Redis持久化,

下次启动系统或Redis时,有缓存数据不丢失的好处。


补充说明:

安全停止Redis

考虑到 Redis 有可能正在将内存中的数据同步到硬盘中,强行终止 Redis 进程可能会导致数据丢失。

正确停止Redis的方式应该是向Redis发送SHUTDOWN命令,

方法为:

redis-cli SHUTDOWN

当Redis收到SHUTDOWN命令后,

1. 会先断开所有客户端连接,

2. 然后根据配置执行持久化,

3. 最后完成退出。


Redis可以妥善处理 SIGTERM信号,

所以使用 kill Redis 进程的 PID也可以正常结束Redis,效果与发送SHUTDOWN命令一样。