Redis安装配置
一、Redis 简介
Redis(Remote Dictionary Server),远程词典服务器,是一个基于内存的键值型 NoSQL 数据库。
特征
- 键值型,value 支持多种不同数据结构
- 单线程,每个命令具备原子性。意思是要么成功执行要么失败完全不执行。
- 低延迟,速度快(基于内存、IO多路复用、良好的编码)
- 支持数据持久化
- 支持主从集群、分片集群
二、什么是NoSQL
NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。
- 没有声明性查询语言
- 没有预定义的模式
- 键 - 值对存储,列存储,文档存储,图形数据库
- 最终一致性,而非ACID属性
- 非结构化和不可预知的数据
- CAP定理
- 高性能,高可用性和可伸缩性
三、Redis 服务安装
3.1 下载
Redis 使用标准的做法进行版本管理: 主版本号.副版本号.补丁号。 偶数 副版本号 表示一个 稳定的 发布,像 1.2, 2.0, 2.2, 2.4, 2.6, 2.8。奇数副版本号表示 不稳定的 发布,例如 2.9.x 发布是一个不稳定版本,下一个稳定版本将会是Redis 3.0。
Redis 最新的稳定版本可以在 https://download.redis.io/redis-stable.tar.gz 下载 。 相应的 SHA256 校验和 https://download.redis.io/redis-stable.tar.gz.SHA256SUM。 最新稳定版本的源码可以在 这里获得 , 使用 src/version.h 文件以便可以自动获取版本信息。更多:Redis下载和安装。
Linux版(官网):https://redis.io/
在线下载:
1 | |
Windows版:https://github.com/tporadowski/redis/releases(官方并没有提供win版,win版是微软编译的)
3.2 单机安装
3.2.1 安装 Redis 依赖
Redis 是基于 C 语言编写的,因此首先需要安装 Redis 所需要的 gcc 依赖:
1 | |
3.2.2 上传安装包并解压
3.2.2.1 上传
把安装包上传到 Linux 服务器任意目录(在 Linux 下载可跳过此步),例如,我放到了usr/local/src目录。
3.2.2.2 解压缩
1 | |
3.2.2.3 安装
进入到redis目录,安装:
1 | |
默认的安装路径是在/usr/local/bin目录下:

该目录已经默认配置到环境变量,因此可以在任意目录下运行命令。其中:
- redis-cli:是 redis 提供的命令行客户端
- redis-server:是 redis 的服务端启动脚本
- redis-sentinel:是 redis 的哨兵启动脚本
3.3 Redis 启动
redis 的启动方式有很多种,如:
- 默认启动
- 指定配置启动
- 开机自启
3.3.1 默认启动(不推荐)
使用 redis-server 命令即可启动 Redis:

这种启动属于前台启动,会阻塞整个会话窗口,窗口关闭 Redis 会停止,不推荐使用。
3.3.2 指定配置启动
后台启动必须修改 Redis 配置文件,位于解压后的目录内:/usr/local/src/redis-6.2.6/redis.conf。
先将配置文件进行备份:
1 | |
然后修改redis.conf文件中的配置:
1 | |
启动 Redis:
1 | |
停止 Redis:
1 | |
3.3.3 开机自启
- 新建系统服务文件:
1 | |
关于 /etc/systemd/system 目录更多请参考:关于system目录
新增内容:
注意ExecStart的内容要修改为自己服务器的实际路径
1 | |
- 重载系统服务:
1 | |
- 现在就可以用下面这组命令来操作 redis 了:
1 | |
- 执行下面的命令,让 redis 开机自启:
1 | |
四、Redis 配置文件
4.1 查看配置项
4.2 更改配置项
4.3 更改配置文件
Redis 某些配置信息无法直接通过命令修改,此时就需要修改配置文件。
比如设置 Redis 允许远程连接的功能:
1 | |
4.4 常用配置
1 | |
vim 常用指令:
/pattern:向后查找字符串pattern
?pattern:向前搜索字符串pattern
n: 下一个匹配(如果是/搜索,则是向下的下一个,?搜索则是向上的下一个)
N:上一个匹配(同上)
u:撤销
4.5 其它配置说明
| 配置项 | 参数 | 说明 |
|---|---|---|
| daemonize | no/yes | 默认为 no,表示 Redis 不是以守护进程的方式运行,通过修改为 yes 启用守护进程。 |
| pidfile | 文件路径 | 当 Redis 以守护进程方式运行时,会把进程 pid 写入自定义的文件中。 |
| port | 6379 | 指定 Redis 监听端口,默认端口为 6379。 |
| bind | 127.0.0.1 | 绑定的主机地址。 |
| timeout | 0 | 客户端闲置多长秒后关闭连接,若指定为 0 ,表示不启用该功能。 |
| loglevel | notice | 指定日志记录级别,支持四个级别:debug、verbose、notice、warning,默认为 notice。 |
| logfile | stdout | 日志记录方式,默认为标准输出。 |
| databases | 16 | 设置数据库的数量(0-15个)共16个,Redis 默认选择的是 0 库,可以使用 SELECT 命令来选择使用哪个数据库储存数据。 |
| save[seconds][changes] | 可以同时配置三种模式:save 900 1save 300 10save 60 10000 | 表示在规定的时间内,执行了规定次数的写入或修改操作,Redis 就会将数据同步到指定的磁盘文件中。比如 900s 内做了一次更改,Redis 就会自动执行数据同步。 |
| rdbcompression | yes/no | 当数据存储至本地数据库时是否要压缩数据,默认为 yes。 |
| dbfilename | dump.rdb | 指定本地存储数据库的文件名,默认为 dump.rdb。 |
| dir | ./ | 指定本地数据库存放目录。 |
| slaveof | 主从复制配置选项 | 当本机为 slave 服务时,设置 master 服务的 IP 地址及端口,在 Redis 启动时,它会自动与 master 主机进行数据同步。 |
| requirepass | foobared 默认关闭 | 密码配置项,默认关闭,用于设置 Redis 连接密码。如果配置了连接密码,客户端连接 Redis 时需要通过 密码认证。 |
| maxmemory | 最大内存限制配置项 | 指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会尝试清除已到期或即将到期的 Key,当此方法处理 后,若仍然到达最大内存设置,将无法再进行写入操作,但可以进行读取操作。 |
| appendfilename | appendonly.aof | 指定 AOF 持久化时保存数据的文件名,默认为 appendonly.aof。 |
| glueoutputbuf | yes | 设置向客户端应答时,是否把较小的包合并为一个包发送,默认开启状态。 |
五、常见问题
5.1 无法连接到远程redis服务器
①:检查是否ping通(略)
②:查看端口是否打开
参考:开放端口
一般到第②步就成功了,如果不行就继续往下
③:关闭防火墙
检查防火墙状态(是否 dead 状态)
1 | |
关闭防火墙两种方式:
iptables 形式防火墙关闭
1 | |
firewalld 形式防火墙关闭
1 | |
④:修改**redis.conf**配置文件
(参考网上,在第③步还搞不定的情况下)
5.2 因虚拟机IP地址改变无法启动
IP 变化的原因
- DHCP 分配 IP 地址后,有一个租用时长,默认两小时,到了租用时长,ip 就会过期,主机会重新申请 ip 地址,这样地址就变了。
解决方法一:修改 ip 租用时长
编辑 - 虚拟网络编辑器 - 更改设置 - 选择带NAT模式的网络(比如我的VMnet8)- DHCP设置
把默认和最长租用时间调大。

解决方法二:固定 ip 地址
- VMware查看虚拟机网络配置
编辑 - 虚拟网络编辑器 - 更改设置 - 选择带NAT模式的网络(比如我的VMnet8)

查看网关 IP:

查看 IP 范围:

获取到 IP 地址范围、网关地址、子网掩码后,就可以到虚拟机系统操作了。
- 修改网卡配置
启动虚拟机系统(本例使用 CentOS7 系统),在终端输入:
1 | |
注:ens33 为网卡名称,ifconfig命令可以查看。
工作模式设置为"static"(即将 ip 分配协议改为静态分配),再依次添加规定范围内的固定 ip 地址、子网掩码、网关地址配置:
1 | |
修改后如下图:

- 重启网卡
1 | |