CentOS7下安装Redis

1.安装redis

第一步:下载redis安装包

在Linux终端输入命令wget下载指定链接,如果weget命令报错,说明没有wget插件,可以选择远程发送redis安装包

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

第二步:解压压缩包

找到压缩包位置,进入压缩包所在目录
解压命令:

tar -zvxf redis-3.2.8.tar.gz

解压后输入ls列出所有目录可以看到一个已解压的文件夹

  • 补充:移动redis目录,一般都会将redis目录放置到 /usr/local/redis目录,所以这里输入下面命令将目前在/root目录下的redis-3.2.8文件夹更改目录,同时更改文件夹名称为redis
mv  /root/redis-3.2.8  /usr/local/redis

第三步:yum安装gcc依赖

查看是否有gcc依赖:如果已经有了gcc就直接跳到第四步

gcc -v

没有则使用以下命令安装c++编译环境依赖

yum install gcc

遇到选择,输入y即可

第四步:编译安装

进入解压目录

cd redis-3.2.8

编译

make

安装
输入以下命令

make PREFIX=/usr/local/redis install

这里多了一个关键字
PREFIX:这个关键字的作用是编译的时候用于指定程序存放的路径。比如我们现在就是指定了redis必须存放在/usr/local/redis目录。假设不添加该关键字Linux会将可执行文件存放在/usr/local/bin目录,库文件会存放在/usr/local/lib目录,配置文件会存放在/usr/local/etc目录。

其他的资源文件会存放在usr/local/share目录。这里指定好目录也方便后续的卸载,后续删除redis可以直接使用rm -rf /usr/local/redis

2. 启动redis的两种方式

先切换到redis的src目录下 (来到 /usr/local/redis/src )

以下两个启动命令都是在此目录下执行

cd src

方法一:前台启动redis

通过下面的命令,无配置文件在前台启动

./redis-server 

redis启动

redis启动成功,但是这种启动方式需要一直打开窗口,不能进行其他操作,不太方便。

按 ctrl + c可以关闭窗口

shutdown

方法二:后台启动redis

执行以下命令,后台启动redis,并根据redis.conf的配置方式启动

./bin/redis-server & ./redis.conf

两种方式区别是有无带&符号和是否使用配置文件的配置方式启动的区别。

redis-server 后面是配置文件,目的是根据该配置文件的配置启动redis服务。

redis.conf配置文件允许自定义多个配置文件,通过启动时指定读取哪个即可。

可以通过redis-cli命令进入redis控制台后通过CONFIG GET *的方式读取所有配置项。 如下:

CONFIG GET *

3. 查看Redis是否正在运行

方法一: 采取查看进程方式

ps -aux | grep redis

ps -ef| grep redis

方法二:采取端口监听查看方式

netstat -lanp | grep 6379

4. 关闭redis服务进程

方法一:使用kill命令

首先使用ps -aux | grep redis查看redis进程,可以看到例子中的redis的pid为59378

ps -aux | grep redis

结果如下图

查看进程

由于grep查询本身也会创建一个包含“redis”字符的进程,如上图中的第二条,这个不是真正的redis进程,真正的进程是图中的第一条

使用kill命令根据id杀死进程

kill 59378

方法二:使用redis-cli

redis-cli是连接本地redis服务的一个命令,通过该命令后可以进入redis的脚本控制台
启动位置和服务位置一个相同

./redis-cli -a 123456

使用-a命令可以在进入控制台的时候加上密码,这样在进入控制台后就不用使用auth命令输入密码了

输入exit可以退出redis脚本控制台

5. redis.conf配置文件

5.1. 配置文件常用的配置项

配置项名称 配置项值范围 配置项说明
daemonize yes,no yes表示启用守护进程,默认是no即不以守护进程方式运行。其中Windows系统下不支持启用守护进程方式运行
port 指定 Redis 监听端口,默认端口为 6379
bind 绑定的主机地址,如果需要设置远程访问,则直接将这个属性备注下或者改为bind * 即可,这个属性和下面的protected-mode控制了是否可以远程访问
protected-mode yes,no 保护模式,该模式控制外部网是否可以连接redis服务,默认是yes,所以默认我们外网是无法访问的,如需外网连接rendis服务则需要将此属性改为no
timeout 300 当客户端闲置多长时间后关闭连接,如果指定为 0,表示关闭该功能
loglevel debug,verbose,notice,warning 日志级别,默认为 notice
databases 16 设置数据库的数量,默认的数据库是0。整个通过客户端工具可以看得到
rdbcompression yes,no 指定存储至本地数据库时是否压缩数据,默认为 yes,Redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大
dbfilename 指定本地数据库文件名,默认值为 dump.rdb
dir 指定本地数据库存放目录
requirepass 设置 Redis 连接密码,如果配置了连接密码,客户端在连接 Redis 时需要通过 AUTH <password> 命令提供密码,默认关闭
maxclients 设置同一时间最大客户端连接数,默认无限制,Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息。
maxmemory 指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区。配置项值范围列里XXX为数值。

5.2. 修改redis.conf配置文件

找到redis.conf文件,一般在redis服务启动目录的上一级目录中
打开这个文件并修改:
vim redis.conf的路径
这里贴出关键修改代码:

# 注释掉它,以便让外网访问
# bind 127.0.0.1
# 关闭保护模式,该模式控制外部网是否可以连接redis服务,默认是yes,所以默认我们外网是无法访问的,如需外网连接rendis服务则需要将此属性改为no。
protected-mode no
# Redis默认不是以守护进程的方式运行,yes表示启用守护进程,默认是no即不以守护进程方式运行。其中Windows系统下不支持启用守护进程方式运行
# 启用守护进程后,Redis会把pid写到一个pidfile中,在/var/run/redis.pid
daemonize yes
# 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定
pidfile  /var/run/redis_6379.pid
# 指定Redis监听端口,默认端口为6379
# 如果指定0端口,表示Redis不监听TCP连接
port  6379
# 工作目录.
# 指定本地数据库存放目录,文件名由上一个dbfilename配置项指定,这里可以不修改
# 则存放目录默认为redis安装目录
# 注意,这里只能指定一个目录,不能指定文件名
dir  /var/redis/6379

通过 /daemonize 查找到属性,默认是no,更改为yes即可。 (通过/关键字查找出现多个结果,在查找时使用n字符切换到下一个即可。

查找到属性后按i变更成输入模式,此时可以修改文件内容,修改完后按ESC键可以退回到正常模式,也可以按CTRL+C组合键退回到正常模式

回到正常模式后保存文件并退出查看文件模式命令:wq,这里:也是要输入。

6. 外部网络访问redis配置

6.1. 修改配置文件

注释掉它,以便让外网访问

bind 127.0.0.1

1
关闭保护模式,该模式控制外部网是否可以连接redis服务,默认是yes,所以默认我们外网是无法访问的,如需外网连接rendis服务则需要将此属性改为no。

protected-mode  no

1

如果在第三节根据配置修改过就不用修改了。可以跳过此步。

6.2. 配置防火墙

Redis的默认端口号6379此时是没有开放的,所有外部网络无法通过此端口访问redis
配置防火墙如下:

查看开放的端口

firewall-cmd --list-ports

2 . 开启指定端口

firewall-cmd --zone=public --add-port=6379/tcp --permanent

3. 重启防火墙

  • 方式一:
firewall-cmd –reload
  • 方式二:
systemctl reload firewalld.service

4. 查看是否开放成功

firewall-cmd --list-ports

开放成功即可通过远程连接redis数据库

7 设置redis开机自启动

7.1. 修改配置文件

daemonize配置为yes

daemonize的默认配置是no,daemonize表示redis的运行方式是否为守护进程的方式,yes为是,no为否,也就是是否后台运行。
如果在上面的步骤5.2中根据配置修改过就不用修改了。可以跳过此步。

7.2. 拷贝配置文件

在etc目录下新建redis文件夹,把redis源码文件中redis.conf配置文件复制到/etc/redis/目录下,我的配置文件的放在cd /usr/local/redis/这个路径下
新建一个redis文件夹

mkdir /etc/redis

进入redis.conf存放目录,执行命令

cp redis.conf /etc/redis/6379.conf

7.3. 拷贝初始化文件

拷贝 redis/utils 中初始化文件 redis_init_script 到 /etc/init.d/redis,

进入utils目录,执行命令

cp redis_init_script /etc/init.d/redis

7.4. 修改/etc/init.d/redis文件内容

提示:修改方式见文章前面修改redis.conf配置文件处
在第一行位置添加以下代码,这样才能自启动服务

#chkconfig: 2345 80 90

注释的意思是,redis服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,关闭的优先级是80。

EXEC修改为redis的启动服务路径
CLIEXEC修改为redis-cli的启动路径

如下:

EXEC=/usr/local/redis/src/redis-server
CLIEXEC=/usr/local/redis/src/redis-cli

查看自启动服务

chkconfig --list

注册服务

chkconfig --add redis

开启自启动服务

chkconfig on

通过上面的操作后,我们就可以通过如下命令启动,启动或停止redis了

开启服务

service redis start 

停止服务

service redis stop
如人饮水,冷暖自知。
最后更新于 2023-08-02