阿里云Linux服务器安装Redis完整教程(含安全配置与性能优化)

简介: 本文详解阿里云Linux服务器(Alibaba Cloud Linux/CentOS)安装Redis全流程:涵盖环境准备、源码编译与yum两种安装方式、安全加固(密码/禁用危险命令/IP限制)、性能优化(内存策略/RDB+AOF持久化)、systemd服务管理及远程连接排错,助新手快速上手、运维高效落地。

Redis作为一款高性能的内存型NoSQL数据库,广泛应用于缓存、消息队列、数据存储等场景。阿里云ECS服务器是部署Redis的理想环境,本文将从环境准备、安装方式、配置优化、安全加固、服务管理到问题排查,全方位讲解阿里云Linux服务器安装Redis的完整流程,帮助新手快速上手,也为资深运维提供最佳实践参考。

一、前期准备:阿里云服务器与环境检查

1.1 阿里云ECS服务器选型与系统选择

在安装Redis前,需确保拥有一台正常运行的阿里云ECS服务器。Redis对服务器配置要求不高,但生产环境需合理选型:

  • 操作系统:推荐Alibaba Cloud Linux 3、CentOS 7/8、Ubuntu 20.04/22.04,本文以Alibaba Cloud Linux 3(CentOS兼容)为例,操作命令可兼容CentOS系统。
  • 配置建议:测试环境1核2G即可;生产环境建议2核4G及以上,内存是Redis的核心资源,优先保证内存充足,存储选择SSD提升持久化性能。
  • 网络:服务器需绑定公网IP,确保能外网访问,同时配置安全组开放必要端口。

需要先登录阿里云控制台,点击:阿里云控制台

1.2 远程连接服务器

阿里云ECS支持多种远程连接方式,推荐以下两种:

  1. 阿里云Workbench:控制台直接登录,无需额外工具,适合新手。
  2. SSH工具:Xshell、Putty、FinalShell等,通过公网IP+用户名(默认root)+密码或密钥连接。

连接成功后,执行以下命令更新系统软件包,确保环境最新:

sudo yum update -y

1.3 关闭防火墙或开放端口(关键)

Redis默认端口6379,若防火墙拦截,外部无法连接。阿里云服务器需同时配置系统防火墙阿里云安全组

1.3.1 系统防火墙配置(firewalld)

# 开放6379端口 sudo firewall-cmd --add-port=6379/tcp --permanent # 重载防火墙生效 sudo firewall-cmd --reload # 查看端口是否开放 sudo firewall-cmd --list-ports

1.3.2 阿里云安全组配置(必做)

进入阿里云ECS控制台,找到实例,点击安全组配置规则,入方向添加规则:

  • 协议类型:TCP
  • 端口范围:6379/6379
  • 授权对象:0.0.0.0/0(仅测试环境),生产环境建议指定固定IP,避免全网开放。

二、Redis安装:两种方式详解(源码编译+yum安装)

Redis安装主要有源码编译安装(推荐,自定义配置、版本灵活)和yum包管理器安装(简单快捷,适合快速部署)两种方式,下面分别详细讲解。

2.1 方式一:源码编译安装(推荐,生产环境首选)

源码编译安装可自由选择Redis版本,自定义安装路径,性能更优,是生产环境的主流选择。

2.1.1 安装编译依赖

Redis由C语言开发,编译需gcc、make等工具,执行以下命令安装依赖:

# 安装gcc、gcc-c++、make、tcl(测试依赖) sudo yum install -y gcc gcc-c++ make tcl

验证依赖是否安装成功:

gcc --version make --version

2.1.2 下载Redis源码包

Redis官网获取最新稳定版,本文以Redis 7.2.5为例,执行以下命令下载:

# 进入/usr/local/src目录(源码默认存放路径) cd /usr/local/src # 下载Redis源码包 sudo wget https://download.redis.io/releases/redis-7.2.5.tar.gz# 解压源码包 sudo tar -zxvf redis-7.2.5.tar.gz # 重命名目录(简化操作) sudo mv redis-7.2.5 redis

2.1.3 编译Redis源码

进入解压后的目录,执行make编译,编译过程约3-5分钟,耐心等待:

# 进入Redis目录 cd /usr/local/src/redis # 编译(默认编译所有模块) make # 编译测试(可选,验证编译是否成功) make test

编译常见错误解决:

  • 错误1:cc: 未找到命令→ 未安装gcc,重新执行yum install -y gcc gcc-c++。
  • 错误2:jemalloc/jemalloc.h: 没有那个文件或目录→ 编译时指定内存分配器,执行make USE_JEMALLOC=no。
  • 错误3:make[1]: *** [adlist.o] 错误 1→ 执行make CFLAGS="-march=x86-64"重新编译。

2.1.4 安装Redis到指定路径

编译成功后,执行make install安装Redis到系统默认路径(/usr/local/bin),或自定义安装路径:

# 安装到默认路径(推荐) sudo make install # 自定义安装路径(如/usr/local/redis) # sudo make PREFIX=/usr/local/redis install

验证安装是否成功:

# 查看Redis版本 redis-server --version redis-cli --version

2.1.5 创建Redis目录结构(规范管理)

为方便管理配置文件、日志、数据,创建专用目录:

# 创建配置、日志、数据目录 sudo mkdir -p /etc/redis /var/log/redis /var/lib/redis # 复制默认配置文件到/etc/redis sudo cp /usr/local/src/redis/redis.conf /etc/redis/ # 修改目录权限(避免权限不足) sudo chmod 755 /var/log/redis /var/lib/redis

2.2 方式二:yum安装(简单快捷,测试环境首选)

yum安装无需编译,一键部署,适合快速搭建测试环境,但版本可能不是最新,自定义配置灵活性较低。

2.2.1 安装EPEL源(Redis依赖)

# 安装EPEL源 sudo yum install -y epel-release # 更新yum缓存 sudo yum makecache

2.2.2 一键安装Redis

# 安装Redis sudo yum install -y redis # 查看安装版本 redis-server --version

yum安装默认配置路径:/etc/redis.conf;数据路径:/var/lib/redis;日志路径:/var/log/redis。

三、Redis核心配置:安全与性能优化(重中之重)

Redis默认配置仅适合本地测试,公网部署必须修改核心配置,否则易被攻击、数据泄露。配置文件为/etc/redis/redis.conf,执行vi /etc/redis/redis.conf编辑。

3.1 基础网络配置(允许远程访问)

默认bind 127.0.0.1仅本地访问,需修改为允许所有IP或指定IP:

# 注释默认bind(仅本地) # bind 127.0.0.1 ::1 # 允许所有IP访问(测试环境) bind 0.0.0.0 # 仅允许指定IP访问(生产环境,推荐) # bind 192.168.1.0/24 10.0.0.0/8

修改端口(可选,默认6379,生产环境建议修改为非默认端口,降低扫描风险):

# 默认端口6379,修改为6380 port 6380

3.2 安全配置(必做,防止攻击)

3.2.1 设置访问密码(核心安全措施)

默认无密码,公网部署极易被入侵,取消requirepass注释并设置强密码:

# 设置密码(替换为复杂密码,包含大小写、数字、特殊字符) requirepass Redis@123456

3.2.2 关闭保护模式(远程访问必需)

保护模式默认开启,无密码且bind为0.0.0.0时会拒绝连接,需关闭:

# 关闭保护模式 protected-mode no

3.2.3 禁用危险命令(防止数据丢失)

禁用FLUSHDB、FLUSHALL、KEYS等危险命令,避免误操作或恶意删除数据:

# 禁用FLUSHDB rename-command FLUSHDB "" # 禁用FLUSHALL rename-command FLUSHALL "" # 禁用KEYS(生产环境必做,防止阻塞) rename-command KEYS ""

3.3 性能优化配置(提升Redis吞吐量)

3.3.1 后台运行(守护进程模式)

默认前台运行,关闭终端后服务停止,需设置后台运行:

# 开启后台运行 daemonize yes

3.3.2 内存限制(防止占用过多系统内存)

Redis默认无内存限制,会占用所有可用内存,需根据服务器内存设置:

# 最大内存(服务器内存4G,设置3G,预留系统内存) maxmemory 3gb # 内存淘汰策略(内存满时删除数据,推荐allkeys-lru) maxmemory-policy allkeys-lru

3.3.3 持久化配置(数据安全,RDB+AOF)

Redis默认RDB持久化(快照),建议开启AOF(日志),兼顾性能与数据安全:

# RDB持久化策略(默认,900秒1个key、300秒10个key、60秒10000个key) save 900 1 save 300 10 save 60 10000 # AOF持久化(开启,数据更安全) appendonly yes # AOF同步策略(everysec:每秒同步,平衡性能与安全) appendfsync everysec # AOF文件重写策略(防止文件过大) auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb

3.3.4 网络优化(提升并发连接数)

# 最大客户端连接数(默认10000,高并发可调整为20000) maxclients 20000 # TCP backlog(默认511,高并发调整为2048) tcp-backlog 2048 # 客户端空闲超时(300秒,防止僵尸连接) timeout 300

3.4 日志与数据路径配置(规范管理)

# 日志文件路径 logfile "/var/log/redis/redis.log" # 数据文件存放路径 dir "/var/lib/redis" # RDB文件名 dbfilename dump.rdb # AOF文件名 appendfilename "appendonly.aof"

配置修改完成后,按Esc键,输入:wq保存退出。

四、Redis服务管理:开机自启与常用命令

通过systemd管理Redis服务,实现开机自启、一键启动/停止/重启,方便运维管理。

4.1 创建systemd服务文件(源码安装必做,yum安装自动生成)

执行vi /etc/systemd/system/redis.service创建服务文件,内容如下:

[Unit] Description=Redis In-Memory Data Store After=network.target [Service] User=redis Group=redis ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf ExecStop=/usr/local/bin/redis-cli shutdown Restart=always [Install] WantedBy=multi-user.target

创建redis用户(非root运行,提升安全性):

# 创建redis用户和组 sudo groupadd redis sudo useradd -g redis redis # 授权目录权限 sudo chown -R redis:redis /etc/redis /var/log/redis /var/lib/redis

4.2 常用服务命令

# 重新加载systemd配置 sudo systemctl daemon-reload # 启动Redis服务 sudo systemctl start redis # 设置开机自启 sudo systemctl enable redis # 查看服务状态(验证是否启动成功) sudo systemctl status redis # 停止服务 sudo systemctl stop redis # 重启服务(修改配置后必执行) sudo systemctl restart redis

启动成功后,状态显示active (running)。

4.3 本地连接测试

执行以下命令连接Redis,验证配置是否生效:

# 本地连接(默认端口6379) redis-cli # 输入密码验证 AUTH Redis@123456 # 测试连通性(返回PONG表示成功) PING # 退出连接 EXIT

五、远程连接Redis:客户端工具与代码连接

Redis部署完成后,可通过客户端工具或代码远程连接,进行数据操作。

5.1 客户端工具连接(RDM、Another Redis Desktop Manager)

以Another Redis Desktop Manager为例,连接配置:

  • 主机:阿里云服务器公网IP
  • 端口:6379(或自定义端口)
  • 密码:配置的requirepass密码
  • 连接超时:默认即可

点击连接,成功后可查看Redis数据、执行命令。

5.2 Java代码连接(Jedis示例)

引入Jedis依赖(Maven):

<dependency>     <groupId>redis.clients</groupId>     <artifactId>jedis</artifactId>     <version>4.4.3</version> </dependency>

Java连接代码:

import redis.clients.jedis.Jedis; public class RedisTest {     public static void main(String[] args) {         // 连接Redis(公网IP、端口、密码)         try (Jedis jedis = new Jedis("123.45.67.89", 6379)) {             // 输入密码             jedis.auth("Redis@123456");             // 测试连通性             System.out.println("PING: " + jedis.ping());             // 设置key-value             jedis.set("name", "阿里云Redis");             // 获取key             System.out.println("name: " + jedis.get("name"));         }     } }

六、常见问题排查:安装与连接错误解决

6.1 启动失败:Can't allocate memory

原因:系统内存不足,或vm.overcommit_memory参数未设置为1。

解决

# 修改内核参数 echo 'vm.overcommit_memory = 1' >> /etc/sysctl.conf # 生效 sysctl -p # 关闭透明大页(THP) echo never > /sys/kernel/mm/transparent_hugepage/enabled

6.2 远程连接超时:无法连接到服务器

原因:安全组/防火墙未开放端口、bind配置错误、密码错误。

解决

  1. 检查阿里云安全组入方向是否开放6379端口。
  2. 检查系统防火墙是否开放端口:firewall-cmd --list-ports。
  3. 确认bind配置为0.0.0.0或指定IP,而非127.0.0.1。
  4. 验证密码是否正确,无密码时关闭protected-mode。

6.3 编译错误:make: *** [all] Error 2

原因:依赖缺失或系统环境不兼容。

解决:重新安装依赖yum install -y gcc gcc-c++ make tcl,清理编译缓存make clean后重新编译。

6.4 数据丢失:重启后数据消失

原因:未开启持久化(RDB/AOF),或持久化路径配置错误。

解决:开启RDB和AOF持久化,检查dir配置路径是否正确,重启前执行save手动持久化。

七、总结与最佳实践

本文详细讲解了阿里云Linux服务器安装Redis的完整流程,包括环境准备、源码编译与yum安装、核心安全与性能配置、systemd服务管理、远程连接与问题排查。总结生产环境最佳实践:

  1. 优先选择源码编译安装,自定义版本与配置,性能更优。
  2. 安全必做:设置强密码、修改默认端口、禁用危险命令、限制IP访问
  3. 性能优化:开启后台运行、合理设置内存限制、RDB+AOF持久化、优化网络参数
  4. 服务管理:使用systemd管理,非root用户运行,开机自启,便于运维。
  5. 数据安全:定期备份RDB/AOF文件,开启持久化,防止数据丢失。

通过以上步骤,可在阿里云Linux服务器上快速部署稳定、安全、高性能的Redis服务,满足缓存、数据存储等业务需求。

八、常见问答

Q1:阿里云Linux服务器安装Redis,源码编译和yum安装哪个好?

A1:生产环境推荐源码编译安装,可自由选择版本、自定义安装路径和配置,性能更优;测试环境可选择yum安装,一键部署,简单快捷。

Q2:Redis默认端口6379,生产环境需要修改吗?

A2:建议修改,默认端口易被端口扫描工具探测,修改为非默认端口可降低被攻击风险,同时需同步修改安全组和防火墙端口。

Q3:Redis设置密码后,本地连接需要输入密码吗?

A3:需要,无论本地还是远程连接,配置密码后连接都需执行AUTH命令输入密码,否则无法进行数据操作。

Q4:Redis启动时提示内存不足,如何解决?

A4:修改内核参数vm.overcommit_memory=1,关闭透明大页THP,同时通过maxmemory参数限制Redis内存占用,预留系统内存。

Q5:Redis重启后数据丢失,是什么原因?

A5:主要原因是未开启RDB和AOF持久化,Redis纯内存存储的数据重启会清空,也可能是持久化文件路径配置错误。

Q6:如何禁止Redis执行FLUSHALL命令,防止数据被误删?

A6:在redis.conf配置文件中添加rename-command FLUSHALL "",即可禁用该高危命令,也可使用相同方式禁用FLUSHDB、KEYS等命令。

相关文章
|
21小时前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
7507 32
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
|
21小时前
|
数据采集 人工智能 前端开发
让 Coding Agent 从黑盒到透明:阿里云 Agent 观测审计数据采集实践
AI Agent 规模化落地带来执行黑盒、行为难追溯、成本难度量三大难题。阿里云基于 OTel 标准,面向 Coding Agent、个人通用助理和框架型 Agent,推出 LoongSuite Pilot、插件及探针等无侵入采集方案,让 Agent 实现可看见、可分析、可审计、可治理。
643 142
|
21小时前
|
人工智能 缓存 自然语言处理
阿里Qwen3.7-Max评测:Agent能力显著提升,耗时与调用成本大幅下降
阿里云百炼推出面向智能体的旗舰大模型Qwen3.7-Max,具备长周期自主执行能力,显著提升编程、办公自动化等复杂任务处理水平;支持MCP集成与多框架兼容,并以限时5折+100万Tokens免费试用大幅降低使用门槛,助力企业高效落地AI应用。在阿里云百炼平台快速体验:https://t.aliyun.com/U/fPVHqY
|
21小时前
|
人工智能 安全 定位技术
CodeGraph深度解析 让Claude Code工具调用直降七成的核心原理与实操教程
如今以Claude Code为代表的AI编程智能体已经成为开发者日常编码、项目重构、漏洞修复的必备工具。但在长期使用过程中,几乎所有开发者都会遇到同一个明显痛点:AI虽然具备强大的代码生成与分析能力,却常常陷入盲目探索的循环中。
1262 2
|
21小时前
|
人工智能 弹性计算 运维
阿里云发布堡垒机智能运维Agent,运维交互进入自然语言新时代
支持自然语言运维,提升效率与安全双保障。
1168 1
|
21小时前
|
存储 定位技术 数据库
CodeGraph 如何让 Claude Code减少 7 成工具调用?
CodeGraph 为 Coding Agent 提供本地代码知识图谱,把函数、类、调用链和框架路由提前整理成“项目地图”,减少盲目搜索和文件读取。它不是新 Agent,而是上下文基础设施,让 Agent 更快找到正确代码路径,平均减少 7 成工具调用。
1316 4
|
21小时前
|
人工智能 运维 JavaScript
阿里云Qoder CN(原通义灵码)全解析 产品形态、版本划分与技术适配说明
在AI辅助开发与智能办公工具持续普及的当下,阿里云旗下原通义灵码正式更名为Qoder CN,同时延伸出QoderWork CN、Qoder CN CLI、Qoder CN Mobile等多款配套产品,形成覆盖代码开发、日常办公、终端交互、移动端使用的完整工具矩阵。Qoder CN核心定位为AI智能编码助手,深度适配主流代码编辑器、集成开发环境以及终端场景;QoderWork CN则偏向桌面端综合办公辅助,二者面向不同使用场景,划分了多个版本档位,搭配差异化资源配额、功能权限与计费规则,同时兼容多款主流大模型。
395 4
|
21小时前
|
JavaScript 定位技术 API
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图
CodeGraph 是一款爆火的本地代码智能工具,通过 tree-sitter 解析 AST 构建结构化知识图谱(存于 SQLite),为编程 Agent 提前生成“代码地图”。它显著降低 Agent 在中大型项目中的探索成本——实测工具调用减少71%、Token 降57%、速度提升46%,支持19+语言及主流框架路由识别,完全离线、无需 API Key。
344 1
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图
|
21小时前
|
存储 安全 Java
AgentScope Java 2.0:打造分布式、企业级智能体底座
AgentScope 2.0 面向分布式部署、稳定运行、权限安全等企业级需求全面升级,打造支持多租户隔离与长期稳定运行的企业级智能体底座。
|
21小时前
|
人工智能 运维 API
2026年阿里云百炼通义千问Qwen3.7-plus深度介绍 功能特性、使用优势及618大促订阅方案指南
大模型技术的普及,让AI能力逐步融入个人办公、内容创作、代码编写、企业运营、教育培训等各类场景。不同定位的模型对应不同使用需求,旗舰级模型性能强劲但使用成本偏高,轻量化模型价格低廉却难以胜任复杂任务,而介于两者之间的中端主力模型,凭借均衡的能力、亲民的定价、广泛的场景适配性,成为绝大多数个人用户、小型团队、中小企业的首选。
462 1