目录
[1.3 云服务器安装和使用Redis](#1.3 云服务器安装和使用Redis)
[1.3.1 安装](#1.3.1 安装)
[1.3.2 启动](#1.3.2 启动)
[1.3.2.1 前段模式启动](#1.3.2.1 前段模式启动)
[1.3.2.2 后端模式运行](#1.3.2.2 后端模式运行)
[1.3.2.3 可视化工具连接](#1.3.2.3 可视化工具连接)
[1.3.2.4 启动多个Redis进程](#1.3.2.4 启动多个Redis进程)
[1.3.3 停止](#1.3.3 停止)
1.3 云服务器安装和使用Redis
1.3.1 安装
-
下载安装包
去官网下载自己想要的版本 https://download.redis.io/releases/。

-
安装编译依赖
Redis 是 C 语言开发的,编译安装前需要先安装 gcc 等编译工具,否则后续会编译失败。CentOS 系统安装编译依赖
yum install -y gcc gcc-c++ make wget
3.上传安装包到服务器

4.解压安装包

#解压到当前目录,生成 redis-5.0.14 文件夹
#那个目录运行就解压到那个目录里
tar -zxvf redis-5.0.14.tar.gz
5.编译Redis源码
进入解压后的Redis目录
cd redis-5.0.14
进行编译
make

出现LINK这些内容就是安装成功。
6.安装
安装到指定目录,如 /usr/local/redis。如果不加PREFIX,那么就会安装到/usr/local/bin(系统默认的 PATH 路径,有些软件默认就是安装到这里,如果不指定,就会非常混乱)
make PREFIX=/usr/local/redis install
在解压后的Redis执行这个命令

7.复制配置文件到安装目录下
redis.conf是redis的配置文件,redis.conf在redis源码目录。
#1. 创建 conf/data/log 目录(用于放配置、数据、日志)
mkdir -p /usr/local/redis/{conf,data,log}
#2. 拷贝配置文件到 conf 目录
cp /usr/local/src/redis/redis-5.0.14/redis.conf /usr/local/redis/conf/

安装目录bin下的文件列表

Redis3.0新增的redis-sentinel是redis集群管理工具可实现高可用。
8.设置密码
想设就设,不设危险。修改安装目录下的配置文件。
在 redis.conf 中找到这一行:
requirepass foobared
取消注释并设置一个强密码,比如:
requirepass your_strong_password
重新启动Redis即可
#先停止当前运行的 Redis
redis-cli shutdown
#在启动即可
9.设置Redis可远程访问
3.0及更早的版本默认允许,4.0后的版本需要手动设置。
修改安装目录下的配置文件

取消注释上面的内容,修改为

1.3.2 启动
Redis默认端口号是6379,如果是阿里云云服务器需要在阿里云开放对应端口。
如果想要修改端口号,就在修改配置文件里面的内容。

1.3.2.1 前段模式启动
修改配置文件,改为daemonize no,以前端模式启动。
进入bin目录运行
./redis-server
使用这种方法运行,不会加载任何自定义配置文件,只会使用 Redis 内置的「默认配置」(这些默认配置是编译时固化在程序里的,不是某个物理文件)。

如果要指定配置文件
就进入上一级目录,Redis目录。运行。
cd /usr/local/redis
./bin/redis-server ./conf/redis.conf
1.3.2.2 后端模式运行
修改配置文件,改为daemonize yes,以后端模式启动。

当yes时,指定Redis用作守护进程;即不占用控制台
当no时,指定 redis用作非守护进程;即占用控制台
cd /usr/local/redis
./bin/redis-server ./conf/redis.conf
查 "包含 redis 字符串" 的进程(Redis默认使用6379端口)

1.3.2.3 可视化工具连接
可视化工具连接
1.3.2.4 启动多个Redis进程
启动多个redis进程意义:一个redis代表一个redis服务(服务器)。
方法1:
启动时指定端口可在一台服务器启动多个redis进程。
cd /usr/local/redis
./bin/redis-server ./conf/redis.conf --port 6380
方法2(推荐此方法):
将现有的redis的安装目录拷贝到一个新的目录下。
cp -R redis6377 redis
修改每个Redis的配置文件,把端口号改成不同的端口号。
分别启动每个Redis目录下的redis-server程序。
查询当前redis的进程:

1.3.3 停止
强行终止 Redis 进程会导致持久化数据丢失,必须通过发送SHUTDOWN命令来正确停止。
./bin/redis-cli -p 端口号 -a 密码 shutdown save
-
Redis无密码
cd /usr/local/redis
#执行停止命令,默认停止6379端口的Redis
./bin/redis-cli shutdown save
#如果要停止非默认端口的Redis,需要在命令中指定端口
./bin/redis-cli -p 6377 shutdown save
- shutdown:发送停止指令
- save:停止前将所有数据持久化保存,避免丢失
- Redis有密码
如果直接使用上面的方法,就会出错。

(error) NOAUTH Authentication required. 表述:你的 Redis 服务开启了密码验证,而你执行 shutdown save 时没有先登录验证身份,所以被拒绝执行停止操作。
解决办法有三种。
-
第一种:在输入命令的时候加上密码(不安全)

./bin/redis-cli -a 密码 shutdown save
-a 是 redis-cli 的参数,用来指定连接时的认证密码。
但是这个方法不安全,系统的命令历史记录(比如 history 命令)会把完整的命令保存下来,你的密码会被明文记录。
-
第二种:用环境变量临时传密码(适合脚本)
把密码临时存在环境变量里,命令行看不到明文:#1. 临时设置环境变量(仅当前终端有效)
export REDISCLI_AUTH=LSL03699
#2. 直接执行停止命令,会自动用环境变量里的密码认证
./bin/redis-cli shutdown save # 6377端口就加 -p 6377
export 只是把密码临时存在内存里,命令历史(history)里只会看到 export REDISCLI_AUTH=xxxx,看不到真实密码,也不会被 ps 命令查到;

-
第三种:交互式输入(最推荐,无泄露风险)
#1. 只连接客户端,不输密码
./bin/redis-cli # 如果是6377端口就加 -p 6377,不加默认就是6379
#2. 连接后再输密码(输入时不会显示明文)
auth LSL03699
#3. 执行停止命令
shutdown save
