centos7安装redis(包含各种报错)

本文详细指导了在Centos7环境下安装Redis的过程,包括安装依赖、下载与解压、遇到jemalloc编译错误的解决方法,以及如何指定使用默认的libc分配器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要介绍如果在Centos7下安装Redis。

1.安装依赖

redis是由C语言开发,因此安装之前必须要确保服务器已经安装了gcc,可以通过如下命令查看机器是否安装:

gcc -v

如果没有安装则通过以下命令安装:

yum install -y gcc

2.下载redis安装包并解压

# 下载,我是在root下执行的下载,所以我的下载目录为:/root/redis-6.2.8,这里按照自己的实际情况调整
curl -O https://download.redis.io/releases/redis-6.2.8.tar.gz
# 解压
tar -zxvf redis-6.2.8.tar.gz

3.进入解压目录并编译

1. 进入解压目录
# 进入解压目录
cd redis-6.2.8
2. 编译
# 编译
make
报错
make[1]: Entering directory /opt/redis_cluster/redis-3.2.9/src' CC adlist.o In file included from adlist.c:34:0: zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory #include <jemalloc/jemalloc.h> ^ compilation terminated. make[1]: *** [adlist.o] Error 1 make[1]: Leaving directory/opt/redis_cluster/redis-3.2.9/src’
make: *** [all] Error 2
解决方法:
试错一:

以为是没安装完全gcc

yum install gcc gcc-c++ -y 

但是再编译也还是一样的问题

试错二:
make MALLOC=libc

原因分析:

在README 有这个一段话。

Allocator
———

Selecting a non-default memory allocator when building Redis is done by setting
the MALLOC environment variable. Redis is compiled and linked against libc
malloc by default, with the exception of jemalloc being the default on Linux
systems. This default was picked because jemalloc has proven to have fewer
fragmentation problems than libc malloc.

To force compiling against libc malloc, use:

% make MALLOC=libc

To compile against jemalloc on Mac OS X systems, use:

% make MALLOC=jemalloc

说关于分配器allocator, 如果有MALLOC 这个 环境变量, 会有用这个环境变量的 去建立Redis

而且libc 并不是默认的 分配器, 默认的是 jemalloc, 因为 jemalloc 被证明 有更少的 fragmentation problemslibc

但是如果你又没有jemalloc 而只有 libc 当然 make 出错。 所以加这么一个参数

3. 安装
make install







4yuk

编译redis的时候出现zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory问题的解决办法

有谁看见我的剑了?

redis编译报错:zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory

Chopin

Centos7 安装Redis详细教程

扶摇知风意

Centos7安装Redis

<think>好的,我现在需要帮助用户解决Redis安装过程中遇到的错误问题。首先,我应该回忆用户提供的引用内容,看看里面有没有相关的解决方案。用户引用了五个来源,其中引用[2]、[4]、[5]可能和安装报错相关。 引用[2]提到了CentOS安装Redis的步骤和报错解决方案,可能包含常见的依赖问题。引用[4]则具体提到了linenoise相关的报错,提示需要安装gcc和更新linenoise。引用[5]涉及到保护模式的错误,可能是在配置Redis时没有正确设置绑定地址或密码导致的。 接下来,我需要将这些信息整理成结构清晰的解决方案。可能的问题点包括依赖缺失、linenoise编译错误、保护模式开启导致无法远程连接等。需要分步骤说明如何安装依赖、解决编译错误、修改配置文件等。 同时,用户要求生成相关问题,我需要考虑常见的后续问题,比如性能优化、配置调整、数据持久化等。这些问题可以帮助用户进一步了解Redis的使用和故障排除。 需要确保使用正确的中文表达,避免技术术语错误,并且引用对应的来源。例如,在解决linenoise错误时,要引用[4],在保护模式问题中引用[5]。同时,按照用户的格式要求,使用列表和代码块来展示命令和配置修改。 最后,检查是否有遗漏的步骤,比如启动服务、验证安装是否成功,这些也是安装后的重要步骤。确保用户按照指导操作后能够顺利解决报错,完成Redis安装和配置。</think>以下是Redis安装过程中常见报错的解决方案及步骤说明: ### 一、依赖缺失导致的编译错误 1. **安装基础依赖工具链**: ```bash yum install -y gcc make tcl ``` 部分系统需要额外安装g++(引用[2]): ```bash yum install gcc-c++ ``` 2. **解决linenoise报错**(引用[4]): ```bash # 进入Redis源码目录 cd deps/linenoise make # 返回根目录重新编译 make clean && make ``` ### 二、保护模式连接问题 修改配置文件`redis.conf`: ```bash vim redis.conf ``` 修改以下参数: ```properties protected-mode no # 关闭保护模式(引用[5]) bind 0.0.0.0 # 允许所有IP连接 requirepass 密码 # 设置访问密码 ``` 重启服务生效: ```bash systemctl restart redis ``` ### 三、服务启动失败排查 1. 查看错误日志: ```bash journalctl -u redis -n 100 ``` 2. 验证端口监听: ```bash netstat -tlnp | grep 6379 ``` ### 四、其他常见问题 - **内存分配错误**:调整内核参数`vm.overcommit_memory=1` - **持久化失败**:检查磁盘空间和目录权限
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坦笑&&life

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值