news 2026/9/20 14:29:52

CentOS 编译安装 Redis 6.2.1 并部署多实例(单服务器)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CentOS 编译安装 Redis 6.2.1 并部署多实例(单服务器)

一、前言

本文基于 CentOS 系统,完整记录 Redis 6.2.1 手动编译安装过程(解决 jemalloc 编译报错),并实现单服务器部署两个独立 Redis 实例(6379/6380),无需创建多个 Linux 系统,核心是通过「配置隔离」实现实例独立运行。

二、环境准备

  • 系统:CentOS(7/8 均可)
  • 权限:root 用户
  • 依赖:GCC 编译工具(Redis 基于 C 语言开发)

三、Redis 6.2.1 编译安装(解决 jemalloc 报错)

3.1 下载并解压 Redis 安装包

# 1. 创建安装目录(自定义,本文用 /root/lamp) mkdir -p /root/lamp && cd /root/lamp # 2. 安装 wget(若未安装) yum install -y wget # 3. 下载 Redis 6.2.1 源码包 wget http://download.redis.io/releases/redis-6.2.1.tar.gz # 4. 解压压缩包 tar -zxvf redis-6.2.1.tar.gz && cd redis-6.2.1

3.2 安装 GCC 编译工具

yum install -y gcc

3.3 编译安装(解决 jemalloc 报错)

直接make可能出现以下报错:

In file included from adlist.c:34:
zmalloc.h:5B:31: warning: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make: *** [adlist.ol Error 1

解决方法:清理编译残留 + 指定系统 malloc 编译

# 1. 清理之前的编译残留 make distclean # 2. 重新编译(指定使用系统 libc 代替 jemalloc) make MALLOC=libc # 3. 执行安装(将 redis-server/redis-cli 等命令安装到系统路径) make install

3.4 验证安装

# 检查 redis-server 路径 which redis-server # 输出:/usr/local/bin/redis-server # 检查版本 redis-server -v # 输出:Redis v6.2.1

四、部署两个独立 Redis 实例(6379/6380)

核心思路:为每个实例配置「独立端口、配置文件、数据目录、日志文件」,实现隔离运行。

4.1 创建实例隔离目录

# 创建实例1(6379)、实例2(6380)的配置/数据/日志目录 mkdir -p /root/lamp/redis_instance/{6379,6380}/{conf,data,log} # 复制默认配置文件到实例目录 cp /root/lamp/redis-6.2.1/redis.conf /root/lamp/redis_instance/6379/conf/redis_6379.conf cp /root/lamp/redis-6.2.1/redis.conf /root/lamp/redis_instance/6380/conf/redis_6380.conf

4.2 修改实例配置文件(核心:隔离关键参数)

4.2.1 实例 1(6379)配置:/root/lamp/redis_instance/6379/conf/redis_6379.conf

编辑文件,修改以下关键项(其余保持默认):

# 端口(默认6379) port 6379 # 守护进程启动(后台运行,避免终端关闭停服务) daemonize yes # 数据存储目录 dir /root/lamp/redis_instance/6379/data # 日志文件路径 logfile "/root/lamp/redis_instance/6379/log/redis_6379.log" # PID文件(避免冲突) pidfile "/var/run/redis_6379.pid" # 关闭保护模式(测试环境,生产环境建议设密码) protected-mode no # 可选:设置访问密码 requirepass "redis6379"

批量替换脚本:

#无身份校验 sed -i -e 's/^port .*/port 6379/' -e 's/^daemonize .*/daemonize yes/' -e 's/^dir .*/dir \/root\/lamp\/redis_instance\/6379\/data/' -e 's/^logfile .*/logfile "\/root\/lamp\/redis_instance\/6379\/log\/redis_6379.log"/' -e 's/^pidfile .*/pidfile "\/var\/run\/redis_6379.pid"/' -e 's/^protected-mode .*/protected-mode no/' /root/lamp/redis_instance/6379/conf/redis_6379.conf

替换前建议先备份:

# 备份6379配置 cp /root/lamp/redis_instance/6379/conf/redis_6379.conf /root/lamp/redis_instance/6379/conf/redis_6379.conf.bak

检查替换结果:

# 验证6379实例配置 grep -E 'port|daemonize|dir|logfile|pidfile|protected-mode|requirepass' /root/lamp/redis_instance/6379/conf/redis_6379.conf
4.2.2 实例 2(6380)配置:/root/lamp/redis_instance/6380/conf/redis_6380.conf

核心修改端口和路径,其余同实例 1:

# 端口改为6380(唯一) port 6380 daemonize yes # 实例2数据目录 dir /root/lamp/redis_instance/6380/data # 实例2日志文件 logfile "/root/lamp/redis_instance/6380/log/redis_6380.log" # 实例2 PID文件 pidfile "/var/run/redis_6380.pid" protected-mode no # 实例2密码(可不同) requirepass "redis6380"

批量替换脚本:

# 6380实例配置自动替换脚本 sed -i -e 's/^port .*/port 6380/' -e 's/^daemonize .*/daemonize yes/' -e 's/^dir .*/dir \/root\/lamp\/redis_instance\/6380\/data/' -e 's/^logfile .*/logfile "\/root\/lamp\/redis_instance\/6380\/log\/redis_6380.log"/' -e 's/^pidfile .*/pidfile "\/var\/run\/redis_6380.pid"/' -e 's/^protected-mode .*/protected-mode no/' /root/lamp/redis_instance/6380/conf/redis_6380.conf

替换前建议先备份:

# 备份6380配置 cp /root/lamp/redis_instance/6380/conf/redis_6380.conf /root/lamp/redis_instance/6380/conf/redis_6380.conf.bak

检查替换结果:

grep -E 'port|daemonize|dir|logfile|pidfile|protected-mode' /root/lamp/redis_instance/6380/conf/redis_6380.conf

4.3 启动两个 Redis 实例

# 启动实例1(6379) redis-server /root/lamp/redis_instance/6379/conf/redis_6379.conf # 启动实例2(6380) # 方式1:新开终端(Alt+F2 切换到 tty2)执行 redis-server /root/lamp/redis_instance/6380/conf/redis_6380.conf # 方式2:直接在当前终端后台启动(推荐) redis-server /root/lamp/redis_instance/6380/conf/redis_6380.conf

4.4 验证实例运行状态

4.4.1 查看 Redis 进程
ps -ef | grep redis-server
4.4.2 连接实例测试隔离性
  • 连接 6379 实例:

    redis-cli -p 6379 127.0.0.1:6379> auth redis6379 # 输入密码(若设置) OK 127.0.0.1:6379> set test6379 "hello6379" OK 127.0.0.1:6379> get test6379 "hello6379"
  • 连接 6380 实例:

    redis-cli -p 6380 127.0.0.1:6380> auth redis6380 OK 127.0.0.1:6380> get test6379 # 查不到6379的键,隔离成功 (nil) 127.0.0.1:6380> set test6380 "hello6380" OK

五、常用操作命令

5.1 停止实例

# 停止6379实例 redis-cli -p 6379 -a redis6379 shutdown # 停止6380实例 redis-cli -p 6380 -a redis6380 shutdown

5.2 重启实例

先停止实例,再重新执行启动命令:

# 重启6379实例 redis-server /root/lamp/redis_instance/6379/conf/redis_6379.conf

六、总结

单台 CentOS 服务器部署多个 Redis 实例的核心是「配置隔离」,无需重复编译安装 Redis,只需为每个实例分配独立端口、配置文件和数据目录即可。本文从编译安装到多实例部署全程实操,解决了常见的 jemalloc 编译报错,适合 Redis 入门学习者参考。

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

《gdb 与 cgdb 深度解析:命令行调试的效率革命》

在图形化调试工具普及的今天,为何资深开发者仍偏爱 gdb/cgdb?答案很简单:极致的灵活性、跨平台兼容性,以及对底层逻辑的深度掌控力。gdb 凭借丰富的命令集,能应对从用户态到内核态、从单机到分布式的各类调试场景&…

作者头像 李华
网站建设 2026/9/19 23:51:39

国产时序数据库崛起:金仓凭什么在复杂场景中碾压InfluxDB

在物联网、工业互联网与智能运维高速发展的当下,时序数据的处理需求正呈指数级增长。从设备监控到智能决策,企业对数据库的要求早已不再局限于“能写能查”,而是追求高吞吐、低延迟、强一致性以及多维度分析能力。过去,InfluxDB凭…

作者头像 李华
网站建设 2026/9/20 8:36:42

脚本网页 地球演化

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0, maximum-scale1.0, user-scalableno"><title>地球生命演…

作者头像 李华
网站建设 2026/9/20 4:30:02

AXI-A7.4.9 Atomic transaction dependencies

这些规则定义了在执行AtomicLoad、AtomicSwap和AtomicCompare事务时,管理器(Master)和从设备(Subordinate)之间握手信号(VALID和READY)的时序约束。其核心目标是在保证原子操作正确性的前提下,最大限度地维持AXI协议的流水线化和通道独立性优势。 信号依赖关系核心原则…

作者头像 李华
网站建设 2026/9/20 4:57:02

【AI黑科技】6.89%性能炸裂!ASFR框架让知识图谱“开天眼“,小白程序员也能玩转大模型增强技术

摘要 当前知识图谱通常存在不完整性的挑战&#xff0c;可以通过链接预测任务对缺失信息进行补全来缓解这一问题. 然而&#xff0c;大部分知识图谱补全方法过度关注对嵌入特征的提取&#xff0c;没有充分考虑预测节点邻域信息、全局特征信息和方向特征信息中所包含的复杂语义&am…

作者头像 李华
网站建设 2026/9/19 9:23:49

Google最新AI Agents课程全解析!337页白皮书浓缩精华,从入门到精通,手把手教你成为Agent开发大神!

上周我分享了[Google推出的Agents入门课程及相关白皮书]。课程中重点推荐了5篇Google最新的Agents技术白皮书&#xff0c;内容涵盖从架构设计到生产实践的全面总结&#xff0c;共计337页&#xff0c;约十万余字。考虑到内容篇幅较大&#xff0c;我将其浓缩整理为一份约5000字的…

作者头像 李华