news 2026/4/23 13:59:20

Linux Redis 安装与配置全攻略

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux Redis 安装与配置全攻略

前言

Redis作为高性能的键值对内存数据库,在现代Web架构中扮演着重要角色。本文将提供从源码编译到包管理器安装的完整方案,包含主从复制、持久化配置、性能优化等生产级设置,助你快速搭建高可用的Redis服务。

一、安装前准备

  1. 系统要求检查
    bash

检查系统版本和架构

cat /etc/os-release
uname -m # x86_64或aarch64

检查内存大小(建议至少2GB)

free -h
2. 环境准备
bash

安装编译依赖

sudo apt update # Ubuntu/Debian
sudo apt install build-essential tcl -y

sudo yum install gcc make tcl -y # CentOS/RHEL

二、安装方法对比

方案对比表
方法 优点 缺点 适用场景
源码编译 版本灵活,最新特性 步骤复杂,需手动配置 开发测试、特定版本需求
包管理器 简单快捷,自动管理 版本可能较旧 生产环境、快速部署
Docker 环境隔离,一键部署 性能略有损耗 容器化环境

三、方法一:源码编译安装(最新稳定版)

  1. 下载与解压
    bash

创建安装目录

mkdir -p /opt/redis
cd /opt/redis

下载Redis 7.x稳定版

wget https://download.redis.io/redis-stable.tar.gz
tar -xzf redis-stable.tar.gz
cd redis-stable
目录结构预览:

text
redis-stable/
├── src/ # 源代码
├── tests/ # 测试文件
├── redis.conf # 配置文件模板
└── README.md
2. 编译与安装
bash

编译Redis(需要gcc编译器)

make -j$(nproc) # 使用所有CPU核心加速编译

测试编译结果(可选但推荐)

make test

安装到系统目录

sudo make install
编译过程示意图:

text
CC Makefile.dep
CC adlist.o
CC quicklist.o
CC ae.o
…(约30个文件)
LINK redis-server
INSTALL redis-sentinel
INSTALL redis-cli
3. 验证安装
bash

查看版本

redis-server --version

输出:Redis server v=7.0.x sha=xxxxxx bits=64

启动Redis服务端

redis-server
成功启动标志:

text

  • Ready to accept connections
  • DB loaded from disk: 0.001 seconds

四、方法二:包管理器安装(推荐生产环境)

  1. Ubuntu/Debian 安装
    bash

添加官方PPA(获取最新版本)

sudo add-apt-repository ppa:redislabs/redis -y
sudo apt update

安装Redis

sudo apt install redis-server -y

验证安装

redis-cli ping

返回:PONG

  1. CentOS/RHEL 安装
    bash

启用EPEL仓库

sudo yum install epel-release -y

安装Redis

sudo yum install redis -y

或使用Remi仓库(更新版本)

sudo yum install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
sudo yum --enablerepo=remi install redis -y
3. 服务管理
bash

启动服务

sudo systemctl start redis # Ubuntu 16.04+/CentOS 7+

sudo service redis start # 旧版本

设置开机自启

sudo systemctl enable redis

查看服务状态

sudo systemctl status redis
服务状态正常显示:

text
● redis.service - Redis In-Memory Data Store
Loaded: loaded (/lib/systemd/system/redis.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-10-01 10:00:00 CST; 1min ago

五、基础配置与优化

  1. 配置文件位置
    bash

Ubuntu/Debian

/etc/redis/redis.conf

CentOS/RHEL

/etc/redis.conf

源码安装默认

/opt/redis/redis-stable/redis.conf
2. 关键配置项详解
bash

备份原配置

sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.backup

编辑配置文件

sudo nano /etc/redis/redis.conf
必须修改的配置:

ini

绑定地址(生产环境建议具体IP)

bind 127.0.0.1 # 仅本地访问

或 bind 0.0.0.0 # 允许所有IP(需配合防火墙)

保护模式(外网访问需关闭)

protected-mode no

端口设置

port 6379

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

daemonize yes

日志文件

logfile /var/log/redis/redis-server.log

数据持久化目录

dir /var/lib/redis

最大内存设置

maxmemory 2gb
maxmemory-policy allkeys-lru

认证密码(生产环境必须)

requirepass YourStrongPassword123!
3. 数据目录设置
bash

创建数据目录

sudo mkdir -p /var/lib/redis
sudo chown redis:redis /var/lib/redis # Ubuntu

或 sudo chown redis:redis /var/lib/redis # CentOS

创建日志目录

sudo mkdir -p /var/log/redis
sudo chown redis:redis /var/log/redis

六、Redis 持久化配置

  1. RDB 快照配置
    ini

在redis.conf中添加

save 900 1 # 900秒内至少1个key变化
save 300 10 # 300秒内至少10个key变化
save 60 10000 # 60秒内至少10000个key变化

RDB文件名称

dbfilename dump.rdb

压缩RDB文件

rdbcompression yes
2. AOF 追加日志配置
ini

启用AOF

appendonly yes

AOF文件名

appendfilename “appendonly.aof”

同步策略(平衡性能与安全)

appendfsync everysec

自动重写AOF文件

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
3. 混合持久化(Redis 4.0+)
ini

RDB+AOF混合模式

aof-use-rdb-preamble yes

七、安全加固

  1. 防火墙配置
    bash

Ubuntu UFW

sudo ufw allow from 192.168.1.0/24 to any port 6379
sudo ufw reload

CentOS Firewalld

sudo firewall-cmd --permanent --add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.0/24” port protocol=“tcp” port=“6379” accept’
sudo firewall-cmd --reload
2. 重命名危险命令
ini

禁用或重命名危险命令

rename-command FLUSHDB “”
rename-command FLUSHALL “”
rename-command CONFIG “CONFIG-SECURE”
rename-command SHUTDOWN “SHUTDOWN-SECURE”
3. TLS加密(Redis 6.0+)
bash

生成TLS证书

openssl genrsa -out redis.key 2048
openssl req -new -key redis.key -out redis.csr
openssl x509 -req -days 365 -in redis.csr -signkey redis.key -out redis.crt

配置文件启用TLS

tls-port 6379
tls-cert-file /path/to/redis.crt
tls-key-file /path/to/redis.key

八、性能测试与监控

  1. 基准测试
    bash

使用redis-benchmark测试

redis-benchmark -h 127.0.0.1 -p 6379 -a YourPassword -t set,get -n 100000 -c 100

测试结果示例:

====== SET ======
100000 requests completed in 1.00 seconds
100 parallel clients
3 bytes payload
keep alive: 1
99.99% <= 1 milliseconds
99999.99 requests per second
2. 监控指标查看
bash

连接Redis

redis-cli -a YourPassword

查看信息

INFO
INFO memory # 内存信息
INFO stats # 统计信息
INFO replication # 复制信息
INFO persistence # 持久化信息

退出

exit
3. 安装RedisInsight(可视化工具)
bash

下载并安装

wget https://download.redisinsight.redis.com/latest/redisinsight-linux64.tar.gz
tar -xzf redisinsight-linux64.tar.gz
cd redisinsight-linux64
./redisinsight-linux64

访问 http://localhost:5540

九、主从复制配置

  1. 主服务器配置
    ini

master.conf

bind 192.168.1.100
port 6379
requirepass MasterPassword123
masterauth SlavePassword456
2. 从服务器配置
ini

slave.conf

bind 192.168.1.101
port 6379
requirepass SlavePassword456

指定主服务器

slaveof 192.168.1.100 6379
masterauth MasterPassword123

只读模式

slave-read-only yes
3. 启动与验证
bash

分别启动主从

redis-server /path/to/master.conf
redis-server /path/to/slave.conf

检查复制状态

redis-cli -h 192.168.1.100 -a MasterPassword123 INFO replication

十、故障排除

  1. 常见问题解决
    bash

问题1:启动失败,端口被占用

sudo netstat -tulnp | grep :6379
sudo kill -9

或修改端口

问题2:内存不足

调整配置:maxmemory 1gb

问题3:连接超时

检查防火墙和bind设置

问题4:AOF文件损坏

修复命令:

redis-check-aof --fix appendonly.aof
2. 日志分析
bash

查看错误日志

sudo tail -f /var/log/redis/redis-server.log

常见日志信息:

* DB loaded from disk: 0.001 seconds # 启动成功

* Background saving started by pid 1234 # RDB保存开始

* Client closed connection # 客户端断开

* Creating Server TCP listening socket *:6379: bind: Address already in use # 端口冲突

  1. 性能诊断
    bash

慢日志查询

redis-cli -a YourPassword
CONFIG SET slowlog-log-slower-than 10000 # 记录超过10ms的命令
SLOWLOG GET 10 # 查看最近10条慢查询

十一、备份与恢复

  1. 手动备份
    bash

RDB备份

cp /var/lib/redis/dump.rdb /backup/dump-$(date +%Y%m%d).rdb

AOF备份

cp /var/lib/redis/appendonly.aof /backup/aof-$(date +%Y%m%d).aof
2. 自动备份脚本
bash
#!/bin/bash

redis_backup.sh

BACKUP_DIR=“/backup/redis”
DATE=$(date +%Y%m%d_%H%M%S)

执行BGSAVE

redis-cli -a YourPassword BGSAVE

等待保存完成

sleep 10

复制RDB文件

cp /var/lib/redis/dump.rdbKaTeX parse error: Expected group after '_' at position 16: BACKUP_DIR/dump_̲DATE.rdb

保留最近7天备份

find $BACKUP_DIR -name “dump_*.rdb” -mtime +7 -delete
3. 恢复数据
bash

停止Redis

sudo systemctl stop redis

恢复RDB文件

cp /backup/dump-20231001.rdb /var/lib/redis/dump.rdb

修改文件权限

chown redis:redis /var/lib/redis/dump.rdb

启动Redis

sudo systemctl start redis
安装验证清单
✅ 基础检查:

Redis服务正常运行:sudo systemctl status redis

可以连接:redis-cli ping 返回 PONG

版本正确:redis-server --version

✅ 安全配置:

设置了认证密码

绑定了特定IP或启用了保护模式

防火墙已配置

危险命令已重命名

✅ 持久化配置:

RDB或AOF已启用

数据目录权限正确

备份脚本已测试

✅ 性能优化:

内存限制已设置

淘汰策略合理

日志路径正确

总结建议

生产环境建议:使用包管理器安装+自定义配置

开发环境:使用Docker快速部署

内存规划:预留20-30%内存给系统

监控必备:设置Redis监控告警

定期维护:清理碎片,检查备份

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 11:32:23

React useRef 完全指南:在异步回调中访问最新的 props/state引言

React useRef 完全指南&#xff1a;在异步回调中访问最新的 props/state 引言 在 React 开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;在异步回调&#xff08;如 setTimeout、Promise、fetch 等&#xff09;中需要访问组件的最新 props 或 state&#xff0c;但由于…

作者头像 李华
网站建设 2026/4/23 9:55:41

计算机毕业设计之springboot基于Java的scratch学习网站系统的设计与实现

近年来&#xff0c;科技飞速发展&#xff0c;在经济全球化的背景之下&#xff0c;互联网技术将进一步提高社会综合发展的效率和速度&#xff0c;互联网技术也会涉及到各个领域&#xff0c;而学习网站系统在网络背景下有着无法忽视的作用。信息管理系统的开发是一个不断优化的过…

作者头像 李华
网站建设 2026/4/23 9:56:06

前后端分离小学生身体素质测评管理系统系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程

摘要 随着教育信息化的不断推进&#xff0c;小学生身体素质测评管理已成为学校体育工作的重要组成部分。传统的测评方式依赖纸质记录和人工统计&#xff0c;存在效率低、易出错、数据难以长期保存等问题。尤其在小学阶段&#xff0c;学生的身体素质数据需要长期跟踪和分析&…

作者头像 李华
网站建设 2026/4/23 11:21:59

计算机毕业设计之springboot基于Java 语言的茶叶销售系统的前端设计与实现

随着我国经济的高速发展与人们生活水平的日益提高&#xff0c;人们对生活质量的追求也多种多样。尤其在人们生活节奏不断加快的当下&#xff0c;人们更趋向于足不出户解决各种问题&#xff0c;茶叶销售系统展现了其蓬勃生命力和广阔的前景。与此同时&#xff0c;为解决用户需求…

作者头像 李华
网站建设 2026/4/17 7:17:34

用ATC转换你的第一个YOLOv5模型:从ONNX到昇腾OM的完整流程

一、前言&#xff1a;为什么要做这个转换&#xff1f; YOLOv5作为当前最流行的目标检测模型之一&#xff0c;在昇腾AI处理器上部署能获得显著的推理加速。但这个过程需要将PyTorch训练的模型转换为昇腾专用的离线模型&#xff08;.om文件&#xff09;。 转换的价值&#xff1…

作者头像 李华