# 阿里云服务器安装 Redis

# 下载 Redis

进入官网找到下载地址 https://redis.io/download

img

右键 Download 按钮,选择复制链接。 进入到 Xshell 控制台 (默认当前是 root 根目录),输入 wget 将上面复制的下载链接粘贴上,如下命令:

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

敲入回车键执行后如下图:

img

# 解压并安装 Redis

下载完成后需要将压缩文件解压,输入以下命令解压到当前目录

tar -zvxf redis-5.0.7.tar.gz

解压后在根目录上输入 ls 列出所有目录会发现与下载 redis 之前多了一个 redis-5.0.7.tar.gz 文件和 redis-5.0.7 的目录。

# 移动 redis 目录

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

mv /root/redis-5.0.7 /usr/local/redis

# 编译

cd 到 /usr/local/redis 目录,输入命令 make 执行编译命令,接下来控制台会输出各种编译过程中输出的内容。

make

最终运行结果如下:

img

# 安装

输入以下命令

make PREFIX=/usr/local/redis install

这里多了一个关键字 PREFIX= 这个关键字的作用是编译的时候用于指定程序存放的路径。比如我们现在就是指定了 redis 必须存放在 /usr/local/redis 目录。假设不添加该关键字 Linux 会将可执行文件存放在 /usr/local/bin 目录,
库文件会存放在 /usr/local/lib 目录。配置文件会存放在 /usr/local/etc 目录。其他的资源文件会存放在 usr/local/share 目录。这里指定号目录也方便后续的卸载,后续直接 rm -rf /usr/local/redis 即可删除 redis。

执行结果如下图:

img

# 修改配置文件

  1. 进入并打开 redis.conf 配置文件

    cd redis/
    vim redis.conf
  2. 进行相关修改

    • a) 设置 ip 地址
    bind 0.0.0.0
    • b) 关闭保护模式
    protected-mode no

    修改前:
    在这里插入图片描述
    修改后:
    在这里插入图片描述

    • c) 启动守护进程
      退出编辑模式,输入 /daemonize 进行查找定位,对其它文件的修改同理

      daemonize yes

      在这里插入图片描述

    • d) 设置工作目录

      mkdir -p /var/lib/redis
      dir /var/lib/redis
    • e) 设置⽇志⽬录
      先创建日志目录,再在配置⽂件中,设置⽇志⽬录

      mkdir -p /var/log/redis/

      在这里插入图片描述

# 启动和停止 Redis

通过命令来启动 Redis,并使用 redis 自带的客户端来连接服务器

cd /usr/local/redis/bin
redis-server /usr/local/redis/redis-5.0.7/redis.conf
netstat -anp | grep redis
redis-cli

在这里插入图片描述

注: ctrl + d 退出 Redis 客户端

停止 Redis 服务器

通过 netstat -anp | grep redis 查询到 redis 服务器的 pid: 10082 ,进行 kill 即可;
再次查询会发现什么都没有

在这里插入图片描述

# redis.conf 配置文件

在目录 /usr/local/redis 下有一个 redis.conf 的配置文件。我们上面启动方式就是执行了该配置文件的配置运行的。我么可以通过 cat、vim、less 等 Linux 内置的读取命令读取该文件。

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

redis-cli
CONFIG GET *

回车确认后会将所有配置项读取出来,如下图

img

# 一些比较重要的配置选项

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

这里我要将 daemonize 改为 yes,不然我每次启动都得在 redis-server 命令后面加符号 &,不这样操作则只要回到 Linux 控制台则 redis 服务会自动关闭,同时也将 bind 注释,将 protected-mode 设置为 no。 这样启动后我就可以在外网访问了。

更改方式:

vim /usr/local/redis/redis.conf

通过 /daemonize 查找到属性,默认是 no,更改为 yes 即可。 (通过 / 关键字查找出现多个结果则使用 n 字符切换到下一个即可,查找到结果后输入:noh 退回到正常模式)

i进入编辑模式
dd 删除当前行
esc退出编辑
:wq 退出并保存

# 查看 Redis 是否正在运行

1、采取查看进程方式

ps -aux | grep redis

结果如下图:

img

2、采取端口监听查看方式

netstat -lanp | grep 6379

img

# 关闭运行中的 Redis 服务

输入 redis-cli 进入控制台后输入命令 shutdown 即可关闭运行中的 Redis 服务了。