【Redis篇】Redis 安装与启动:快速搭建一个 Redis 环境

文章目录

    • [Redis 安装与启动:快速搭建你的第一个 Redis 环境](#Redis 安装与启动:快速搭建你的第一个 Redis 环境)
    • 一、前言
    • [二、为什么要在 Linux 上安装](#二、为什么要在 Linux 上安装)
    • [三、CentOS 安装 Redis](#三、CentOS 安装 Redis)
      • [3.1 CentOS 8 安装(推荐)](#3.1 CentOS 8 安装(推荐))
      • [3.2 CentOS 7 安装](#3.2 CentOS 7 安装)
    • [四、Ubuntu 安装 Redis](#四、Ubuntu 安装 Redis)
    • 五、配置远程连接
    • [六、启动与停止 Redis](#六、启动与停止 Redis)
      • [6.1 CentOS 8 / Ubuntu:使用 systemd 管理](#6.1 CentOS 8 / Ubuntu:使用 systemd 管理)
      • [6.2 CentOS 7:手动启动](#6.2 CentOS 7:手动启动)
    • [七、Redis 的重要文件和目录](#七、Redis 的重要文件和目录)
      • [7.1 可执行程序](#7.1 可执行程序)
      • [7.2 配置文件](#7.2 配置文件)
      • [7.3 持久化文件目录](#7.3 持久化文件目录)
      • [7.4 日志文件目录](#7.4 日志文件目录)
    • [八、用 redis-cli 连接并发出第一条命令](#八、用 redis-cli 连接并发出第一条命令)
      • [8.1 两种使用方式](#8.1 两种使用方式)
      • [8.2 连接本机时可以省略参数](#8.2 连接本机时可以省略参数)
      • [8.3 客户端与服务端的交互过程](#8.3 客户端与服务端的交互过程)
    • 九、总结
      • [9.1 常用命令速查](#9.1 常用命令速查)

Redis 安装与启动:快速搭建你的第一个 Redis 环境

一、前言

💬 这一篇讲什么:在 Linux 上安装 Redis,配置好远程连接,并用 redis-cli 发出第一条命令

🚀 核心内容

  • 为什么选择在 Linux 上安装 Redis?
  • CentOS 7 / CentOS 8 / Ubuntu 三种环境下的安装步骤
  • Redis 的重要文件和目录都是干什么的?
  • 如何用 redis-cli 连接并操作 Redis?

上一篇认识了 Redis 的特性和应用场景,这一篇动手把环境搭起来。工欲善其事,必先利其器------后续所有的学习都依赖一个跑起来的 Redis 实例。


二、为什么要在 Linux 上安装

Redis 官方不支持 Windows 操作系统。这是有充分的技术原因:Redis 的很多核心特性(比如 fork 实现 RDB 快照、epoll 实现 IO 多路复用)都深度依赖 Linux 系统调用,移植到 Windows 上需要付出极大的维护成本,而且性能表现和稳定性都无法保证。

虽然微软在 GitHub 上维护了一个 Windows 移植版本,但功能和原版相差较大,不建议用来学习。

结论:老老实实在 Linux 上装。 如果你用的是 Windows 开发机,可以开一台 Linux 虚拟机(VMware / VirtualBox),或者直接用云服务器(阿里云、腾讯云都有学生优惠),效果是一样的。

本教程选择安装 Redis 5.0 版本。原因是 5.0 已经支持了绝大多数核心功能特性,而且相比 7.0 安装更简单,适合入门学习。


三、CentOS 安装 Redis

3.1 CentOS 8 安装(推荐)

CentOS 8 的官方仓库中已经包含了 Redis 5.0,安装非常简单,一条命令搞定:

bash 复制代码
[root@host ~]# yum install -y redis

安装完成后,输出最后一行应该显示 Complete!

设置开机自启动
bash 复制代码
[root@host ~]# systemctl enable redis

执行后会看到类似这样的输出,说明已经创建了 systemd 服务链接:

bash 复制代码
Created symlink /etc/systemd/system/multi-user.target.wants/redis.service → /usr/lib/systemd/system/redis.service.

3.2 CentOS 7 安装

CentOS 7 官方仓库里没有直接包含 Redis,需要先安装 SCL(Software Collections)源,再从里面安装:

bash 复制代码
# 第一步:安装 SCL 源
yum install centos-release-scl-rh

# 第二步:安装 Redis
yum install rh-redis5-redis

CentOS 7 安装完之后,Redis 的可执行文件藏在 /opt/rh/rh-redis5/root/usr/bin/ 这个很深的目录里,每次使用都要打一长串路径,非常不方便。我们通过符号链接 把它们映射到 /usr/bin/ 下:

bash 复制代码
# 进入 /usr/bin 目录
cd /usr/bin

# 创建符号链接
ln -s /opt/rh/rh-redis5/root/usr/bin/redis-server ./redis-server
ln -s /opt/rh/rh-redis5/root/usr/bin/redis-sentinel ./redis-sentinel
ln -s /opt/rh/rh-redis5/root/usr/bin/redis-cli ./redis-cli

同样,把配置文件目录也做一个符号链接,方便后续访问:

bash 复制代码
cd /etc/
ln -s /etc/opt/rh/rh-redis5/ ./redis

四、Ubuntu 安装 Redis

Ubuntu 的安装是三种系统里最简单的,一条命令搞定:

bash 复制代码
sudo apt update
sudo apt install redis-server -y

等待安装完成即可,Ubuntu 会自动把 Redis 注册为系统服务。


五、配置远程连接

安装完成后,默认情况下 Redis 只允许本机(127.0.0.1)连接。如果你是在云服务器上安装 Redis,想从自己的开发机远程连接,就必须修改配置文件开放远程访问。

5.1 找到配置文件

CentOS 8 :配置文件位于 /etc/redis.conf

CentOS 7 (做了符号链接之后):/etc/redis/redis.conf

Ubuntu :配置文件位于 /etc/redis/redis.conf

5.2 修改两个关键配置项

用任意文本编辑器(vim、nano 都行)打开配置文件,找到并修改以下两处:

第一处:修改 bind 地址

找到这一行:

bash 复制代码
bind 127.0.0.1

将其改为:

bash 复制代码
bind 0.0.0.0

0.0.0.0 表示监听所有网络接口,允许任意 IP 连接。

第二处:关闭保护模式

找到这一行:

bash 复制代码
protected-mode yes

将其改为:

bash 复制代码
protected-mode no

保护模式开启时,Redis 会拒绝来自非本机的连接请求,我们关掉它以允许远程访问。

注意 :在生产环境中开放远程访问,一定要同时配置防火墙规则和 Redis 访问密码(通过 requirepass 配置项),否则 Redis 实例会完全暴露在公网上,存在安全风险。学习环境下可以先忽略这点。

5.3 CentOS 7 额外的配置步骤

CentOS 7 安装的 Redis 还需要做一些额外配置,让它能后台运行并正确记录日志。

启动守护进程

在配置文件中找到:

bash 复制代码
daemonize no

改为:

bash 复制代码
daemonize yes

这样 Redis 启动后会在后台运行,不会占用当前终端。

设置工作目录

先创建工作目录:

bash 复制代码
mkdir -p /var/lib/redis

然后在配置文件中设置:

bash 复制代码
dir /var/lib/redis

Redis 的持久化文件(RDB、AOF)会保存在这个目录下。

设置日志目录

先创建日志目录:

bash 复制代码
mkdir -p /var/log/redis/

然后在配置文件中设置:

bash 复制代码
logfile /var/log/redis/redis-server.log

六、启动与停止 Redis

6.1 CentOS 8 / Ubuntu:使用 systemd 管理

CentOS 8 和 Ubuntu 都通过 systemd 统一管理服务,推荐用这种方式操作 Redis,比直接跑命令更规范。

CentOS 8:

bash 复制代码
# 启动
systemctl start redis

# 停止
systemctl stop redis

# 重启
systemctl restart redis

Ubuntu:

bash 复制代码
# 启动
service redis-server start

# 停止
service redis-server stop

# 重启
service redis-server restart

启动之后,验证 Redis 是否正在监听 6379 端口:

bash 复制代码
netstat -nlpt | grep 6379

输出如下说明启动成功:

bash 复制代码
tcp   0   0   0.0.0.0:6379   0.0.0.0:*   LISTEN   31000/redis-server

6.2 CentOS 7:手动启动

bash 复制代码
# 启动(指定配置文件)
redis-server /etc/redis/redis.conf

停止时,先查看进程 ID,再 kill 掉:

bash 复制代码
# 查看 redis 进程
ps aux | grep redis

# 杀掉进程(替换成实际的进程 ID)
kill 进程ID

七、Redis 的重要文件和目录

安装完 Redis 之后,有几个重要的文件和目录需要了解,后续学习中会频繁和它们打交道。

7.1 可执行程序

Redis 安装后会在 /usr/bin/ 下提供以下几个可执行文件:

文件 作用
redis-server Redis 服务端主程序,启动 Redis 实例
redis-cli 命令行客户端,学习阶段最常用的工具
redis-sentinel 哨兵程序(软链接指向 redis-server)
redis-check-aof AOF 文件修复工具(软链接指向 redis-server)
redis-check-rdb RDB 文件修复工具(软链接指向 redis-server)
redis-benchmark 性能基准测试工具,用于压测 Redis
redis-shutdown 专用停止脚本

可以看到,除了 redis-cliredis-benchmark,其余几个程序本质上都是 redis-server 的软链接,通过不同的命令名触发不同的启动模式。

7.2 配置文件

文件 作用
/etc/redis.conf/etc/redis/redis.conf Redis 服务器的主配置文件,控制 Redis 的所有行为
/etc/redis-sentinel.conf Redis 哨兵的配置文件,讲哨兵章节时会用到

7.3 持久化文件目录

bash 复制代码
/var/lib/redis/

Redis 持久化产生的 RDB 快照文件(.rdb)和 AOF 日志文件(.aof)默认保存在这个目录下。后续讲持久化的时候,可以直接来这里观察文件的变化。

7.4 日志文件目录

bash 复制代码
/var/log/redis/

Redis 运行期间产生的日志文件保存在这里,默认按天分割,较旧的日志文件会用 gzip 压缩存储。后续很多章节会通过日志来观察 Redis 的内部行为,比如主从复制时的同步过程、持久化触发时机等。


八、用 redis-cli 连接并发出第一条命令

Redis 跑起来了,接下来用 redis-cli 连上去,发出我们的第一条命令。

8.1 两种使用方式

redis-cli 有两种使用方式:

方式一:交互式

连接到 Redis 后进入交互模式,后续所有命令直接输入,不需要每次都带上 redis-cli

bash 复制代码
redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set mykey hello
OK
127.0.0.1:6379> get mykey
"hello"

ping 命令是 Redis 的"心跳"命令,返回 PONG 说明连接正常,Redis 运行一切正常。

方式二:单命令模式

直接在命令行里执行单条 Redis 命令,得到结果后退出:

bash 复制代码
[root@host ~]# redis-cli -h 127.0.0.1 -p 6379 ping
PONG
[root@host ~]# redis-cli -h 127.0.0.1 -p 6379 set mykey hello
OK
[root@host ~]# redis-cli -h 127.0.0.1 -p 6379 get mykey
"hello"

这种方式适合在脚本里调用 Redis 命令。

8.2 连接本机时可以省略参数

由于 Redis 默认监听 127.0.0.1:6379,如果是连接本机的 Redis,-h-p 参数可以直接省略:

bash 复制代码
redis-cli
127.0.0.1:6379> ping
PONG

效果完全一样。后续的讲解中,我们基本都用这种简写方式。

8.3 客户端与服务端的交互过程

理解 redis-cli 和 Redis 服务端之间的关系很重要:

text 复制代码
[Redis 客户端 redis-cli]
         │
         │  1. 发送命令(通过 TCP 网络)
         ↓
[Redis 服务端 redis-server]
         │
         │  2. 执行命令
         │  3. 返回结果
         ↓
[Redis 客户端 redis-cli]
         │
         │  4. 显示结果给用户

客户端和服务端之间通过 RESP(Redis Serialization Protocol) 协议通信,这是 Redis 自己定义的一套简单高效的文本协议。我们平时用 redis-cli 的时候完全感知不到这一层,但理解这个结构有助于后续理解 Redis 的网络模型。


九、总结

现在你已经掌握了:

为什么用 Linux:Redis 深度依赖 Linux 系统特性,官方不支持 Windows

三种系统的安装方式:CentOS 8(yum 一键安装)、CentOS 7(SCL 源 + 符号链接)、Ubuntu(apt 一键安装)

关键配置修改bind 0.0.0.0 + protected-mode no 开放远程连接

启动与停止:systemd 管理(CentOS 8 / Ubuntu)或手动启动(CentOS 7)

重要文件和目录 :可执行程序在 /usr/bin/,配置文件在 /etc/redis/,持久化文件在 /var/lib/redis/,日志在 /var/log/redis/

redis-cli 基本使用 :交互式和单命令两种模式,ping 命令验证连通性

9.1 常用命令速查

操作 CentOS 8 Ubuntu
启动 Redis systemctl start redis service redis-server start
停止 Redis systemctl stop redis service redis-server stop
重启 Redis systemctl restart redis service redis-server restart
开机自启 systemctl enable redis 安装后自动配置
连接客户端 redis-cli redis-cli
验证连通 redis-cli ping redis-cli ping

下一篇预告:Redis 基础命令与数据类型入门 ------ 全局命令详解、数据结构与内部编码概览、单线程架构原理,以及 String 类型的全部命令和典型使用场景。

相关推荐
Mahir081 小时前
Spring Boot 自动装配深度解密:从原理到自定义 Starter 实战
java·spring boot·后端·自动装配·自定义starter·大厂面试题
fengxin_rou1 小时前
【Feed 高并发架构实战】:雪花 ID + 三级缓存 + 计数旁路设计详解
数据库·redis·缓存·架构·事务·并发
廿一夏10 小时前
MySql存储引擎与索引
数据库·sql·mysql
Mahir0810 小时前
Spring 循环依赖深度解密:从问题本质到三级缓存源码级解析
java·后端·spring·缓存·面试·循环依赖·三级缓存
曲幽10 小时前
我用了FastApiAdmin后,连夜把踩过的坑都整理出来了
redis·python·postgresql·vue3·fastapi·web·sqlalchemy·admin·fastapiadmin
小鹏linux10 小时前
Ubuntu 22.04 部署开源免费具有精美现代web页面的Casdoor账号管理系统
linux·前端·ubuntu·开源·堡垒机
lzhdim12 小时前
SQL 入门 15:SQL 事务:从 ACID 到四种常见的并发问题
数据库·sql
瀚高PG实验室12 小时前
瀚高企业版V9.1.1在pg_restore还原备份文件时提示extract函数语法问题
数据库·瀚高数据库
TDengine (老段)12 小时前
TDengine Tag 设计哲学与 Schema 变更机制
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据