一、redis 安装

本文详细介绍了在Linux环境下安装Redis过程中遇到的常见问题及其解决方案,包括gcc缺失导致的编译错误和jemalloc内存管理库的配置问题。文章强调了正确安装gcc的重要性,并推荐使用jemalloc作为内存管理方案。

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

安装请参考
安装调试详细说明
redis api参考
linux安装问题:

问题一

cd hiredis && make static
make[3]: 进入目录“/usr/programfile/redis-4.0.11/deps/hiredis”
gcc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb net.c
make[3]: gcc:命令未找到
make[3]: * [net.o] 错误 127
make[3]: 离开目录“/usr/programfile/redis-4.0.11/deps/hiredis”
make[2]: * [hiredis] 错误 2
make[2]: 离开目录“/usr/programfile/redis-4.0.11/deps”
make[1]: [persist-settings] 错误 2 (忽略)
CC adlist.o
/bin/sh: cc: 未找到命令
make[1]: * [adlist.o] 错误 127
make[1]: 离开目录“/usr/programfile/redis-4.0.11/src”
make: * [all] 错误 2
解决方案:yum install gcc

问题二

zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error “Newer version of jemalloc required”
make[1]: * [adlist.o] Error 1
make[1]: Leaving directory `/data0/src/redis-2.6.2/src’
make: * [all] Error 2

解决方案

make MALLOC=libc

说明:Redis并没有自己实现内存池,没有在标准的系统内存分配器上再加上自己的东西。

redis-2.4以上自带jemalloc,你不需要加任何参数,通过zmalloc.c源码中我们可以看到,Redis在编译时,会先判断是否使用tcmalloc,如果是,会用tcmalloc对应的函数替换掉标准的libc中的函数实现。其次会判断jemalloc是否使得,最后如果都没有使用才会用标准的libc中的内存管理函数。所以用tcmalloc优化请谨慎使用,这两着分配器碎片率相差不大,建议用自带jemalloc。
这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值