CentOS 7下安装 Redis 6.0.6 & 常见安装错误处理

本文详述了在CentOS7环境下安装Redis-6.0.6的全过程,包括安装依赖、配置环境、编译安装及启动测试,同时解析了安装过程中可能遇到的常见错误及其解决方案。

CentOS 7 下安装Redis-6.0.6 & 常见错误解决


本文主要介绍在CentOS 7下安装Redis-6.0.6的详细安装步骤,以及一些常见安装遇到的问题原因及解决过程,起初本人参照官方文档在纯净Centos7下进行安装,遇到各种问题,查阅资料按步骤解决并总结过程。

一.整理后完整安装步骤

shell > yum -y install gcc tcl
shell > yum -y install centos-release-scl
shell > yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
shell > echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
shell > source /etc/profile
shell > mkdir /usr/common
shell > wget http://download.redis.io/releases/redis-6.0.6.tar.gz
shell > tar xzf redis-6.0.6.tar.gz
shell > mv redis-6.0.6 /usr/local/redis-6.0.6
shell > cd /usr/local/redis-6.0.6/deps/jemalloc/
shell > ./configure
shell > cd /usr/local/redis-6.0.6
shell > make
shell > make test
shell > src/redis-server &
shell > src/redis-cli
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> get foo
"bar"
127.0.0.1:6379> 

二.过程步骤

先上完整安装步骤shell ,可直接参照完成Redis安装,启动

shell > mkdir /usr/common
shell > wget http://download.redis.io/releases/redis-6.0.6.tar.gz
shell > tar xzf redis-6.0.6.tar.gz
shell > mv redis-6.0.6 /usr/local/redis-6.0.6
shell > cd /usr/local/redis-6.0.6
shell > yum -y install gcc
shell > cd /usr/local/redis-6.0.6/deps/jemalloc/
shell > ./configure
shell > cd /usr/local/redis-6.0.6
shell > yum -y install centos-release-scl
shell > yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
shell > echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
shell > source /etc/profile
shell > cd /usr/local/redis-6.0.6
shell > make
shell > yum -y install tcl
shell > make test
shell > src/redis-server &
shell > src/redis-cli
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> get foo
"bar"
127.0.0.1:6379> 

三.步骤拆解 & 解释

1.软件安装包下载

shell > mkdir /usr/common
shell > wget http://download.redis.io/releases/redis-6.0.6.tar.gz
shell > tar xzf redis-6.0.6.tar.gz
shell > mv redis-6.0.6 /usr/local/redis-6.0.6
shell > cd /usr/local/redis-6.0.6

2.前置依赖安装 & 环境配置
(1)安装 gcc

shell > yum -y install gcc

执行make操作需要依赖 gcc ,否则提示如下错误

make[3]: cc: Command not found
make[3]: *** [net.o] Error 127
make[3]: Leaving directory `/usr/local/redis-6.0.6/deps/hiredis'
make[2]: *** [hiredis] Error 2
make[2]: Leaving directory `/usr/local/redis-6.0.6/deps'
make[1]: [persist-settings] Error 2 (ignored)
    CC adlist.o
/bin/sh: cc: command not found
make[1]: *** [adlist.o] Error 127
make[1]: Leaving directory `/usr/local/redis-6.0.6/src'
make: *** [all] Error 2

(2)配置jemalloc

shell > cd /usr/local/redis-6.0.6/deps/jemalloc/
shell > ./configure

否则make提示如下错误:

[root@iZ2zedll6n6czo68sfh0mjZ redis-6.0.6]# make
cd src && make all
make[1]: Entering directory `/usr/local/redis-6.0.6/src'
    CC Makefile.dep
make[1]: Leaving directory `/usr/local/redis-6.0.6/src'
make[1]: Entering directory `/usr/local/redis-6.0.6/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 `/usr/local/redis-6.0.6/src'
make: *** [all] Error 2

(3)升级gcc 版本

shell > yum -y install centos-release-scl
shell > yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils

否则make提示如下错误:

server.c:5191:24: error: ‘struct redisServer’ has no member named ‘masterhost’
             if (!server.masterhost) {
                        ^
server.c:5201:19: error: ‘struct redisServer’ has no member named ‘supervised_mode’
         if (server.supervised_mode == SUPERVISED_SYSTEMD) {
                   ^
server.c:5208:15: error: ‘struct redisServer’ has no member named ‘maxmemory’
     if (server.maxmemory > 0 && server.maxmemory < 1024*1024) {
               ^
server.c:5208:39: error: ‘struct redisServer’ has no member named ‘maxmemory’
     if (server.maxmemory > 0 && server.maxmemory < 1024*1024) {
                                       ^
server.c:5209:176: error: ‘struct redisServer’ has no member named ‘maxmemory’
         serverLog(LL_WARNING,"WARNING: You specified a maxmemory value that is less than 1MB (current value is %llu bytes). Are you sure this is what you really want?", server.maxmemory);
                                                                                                                                                                                ^
server.c:5212:31: error: ‘struct redisServer’ has no member named ‘server_cpulist’
     redisSetCpuAffinity(server.server_cpulist);

(4)配置gcc环境信息

shell > echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
shell > source /etc/profile

(5)编译安装make

shell > make

(6) 安装tcl

shell > yum -y install tcl

否则执行make test 提示如下错误

[root@iZ2zedll6n6czo68sfh0mjZ redis-6.0.6]# make test
cd src && make test
make[1]: Entering directory `/usr/local/redis-6.0.6/src'
    CC Makefile.dep
make[1]: Leaving directory `/usr/local/redis-6.0.6/src'
make[1]: Entering directory `/usr/local/redis-6.0.6/src'
You need tcl 8.5 or newer in order to run the Redis test
make[1]: *** [test] Error 1
make[1]: Leaving directory `/usr/local/redis-6.0.6/src'
make: *** [test] Error 2

(7)后台启动redis 并进行测试

shell > src/redis-server &
shell > src/redis-cli
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> get foo
"bar"
127.0.0.1:6379> 

### CentOS 7安装 Redis常见错误及解决方案 #### GCC 版本过低导致编译失败 当在 Centos 7.6 尝试安装 Redis 6.0.6 时可能会遇到由于 gcc 版本过低而产生的错误。默认情况下,CentOS 7 自带的 gcc 版本为 4.8.5,然而 Redis 编译过程至少需要 gcc 5.3 或更高版本[^1]。 为了克服这个问题,建议先确认现有 gcc 版本: ```bash gcc --version ``` 接着按照官方文档或其他可靠资源指导来更新至 gcc 9.3 或者其他兼容版本。完成升级之后再次运行 `make` 命令继续 Redis 的构建流程即可解决问题并顺利完成安装。 #### Ruby 接口缺失影响集群创建工具使用 如果打算建立 Redis 分片集群,则可能碰到因为缺少必要的 Ruby 库而导致无法正常使用 `redis-trib.rb` 工具的情况。具体表现为执行该脚本时报错提示找不到对应的 Redis 模块。此时可以通过 Gem 包管理器轻松解决此问题: ```bash gem install redis ``` 这条指令会自动下载并安装最新稳定版的 Redis Ruby 客户端库,从而使得 `redis-trib.rb` 能够正常工作[^3]。 #### 修改配置文件与设置环境变量 对于希望简化操作路径以及更好地集成到系统中的用户来说,在完成基本安装后还需要做一些额外的工作。这包括但不限于编辑 Redis 主要配置文件(通常位于 `/etc/redis.conf`),根据实际需求调整各项参数设定;另外就是把 Redis 可执行程序所在的目录添加进系统的 PATH 环境变量里去以便于随时调用这些命令行工具[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值