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

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

本文主要介绍如果在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

### CentOS安装 Redis 的常见错误及其解决方案 #### 1. Yum 源问题 当尝试使用 `yum` 安装 Redis 时,可能会遇到无法找到软件包的情况。这通常是因为系统的默认源不包含 EPEL (Extra Packages for Enterprise Linux)。 为了修复这个问题,应该先安装 EPEL 源: ```bash sudo yum install epel-release ``` 之后再继续安装 Redis: ```bash sudo yum install redis ``` 这样可以确保获取到最新的稳定版本[^1]。 #### 2. 编译依赖缺失 对于采用源码编译的方式,在编译过程中可能因为缺少必要的构建工具而导致失败。此时应当预先安装 GCC 和其他开发库来满足需求: ```bash sudo yum groupinstall "Development Tools" sudo yum install tcl ``` 完成上述步骤后再重新尝试编译过程即可正常进行[^4]。 #### 3. 启动服务报错 有时即使成功安装Redis ,但在启动服务的时候仍然会出现异常提示。常见的原因包括但不限于配置文件路径不对或是权限不足等问题。可以通过检查日志文件 `/var/log/redis.log` 来定位具体的原因并加以修正;另外也可以考虑调整 SELinux 设置或关闭防火墙暂时测试是否与此有关联[^3]。 #### 4. 自启动设置失效 为了让 Redis 能够随系统开机自动运行,需将其加入初始化脚本里边去。然而部分情况下这样做并不能生效,这时建议利用 systemd 提供的服务管理功能来进行更可靠的设定: ```bash systemctl enable redis.service ``` 这条指令能够有效地注册 Redis 成为一个常驻后台进程的一部分,从而实现预期的效果。 #### 5. 远程访问受限 默认状态下 Redis 只监听本地接口,这意味着外部机器上的客户端将无法建立连接。要改变这一状况,则需要编辑配置文件 `/etc/redis.conf` 中的相关参数(如 bind 地址),同时开放相应的端口规则以便于网络通信得以顺利开展。 ```bash # 修改后的bind选项示例 bind 0.0.0.0 ``` 请注意修改任何涉及网络安全性的改动之前都要充分评估风险,并采取适当的安全措施保护服务器免受攻击。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

坦笑&&life

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

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

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

打赏作者

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

抵扣说明:

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

余额充值