Redis新版本(v6.0及之后)的安装配置图文教程(一)

    标签:redis linux

    Redis官网推出新版本(v6.0及之后)的应用,其的安装与配置有所不同。下文完整地记录了新版本的安装与配置的要点,以及安装过程的注意事项。

    1、在Redis官网中(https://redis.io/)查看最新稳定版本的软件包,复制下载地址
    Redis新版本(v6.0及之后)的安装配置图文教程(一) - 图1
    2、可直接将软件包下载到Linux下
    wget http://download.redis.io/releases/redis-6.0.5.tar.gz

    Redis新版本(v6.0及之后)的安装配置图文教程(一) - 图2

    3、解压软件包,并进入解压后的目录,使用make 命令编译软件
    tar -zxvf redis-6.0.5.tar.gz
    Redis新版本(v6.0及之后)的安装配置图文教程(一) - 图3
    4、编译过程中可能出现如下报错,部分日志截图如下。(报错原因:Linux一般默认GCC版本是4.8.5,Redis新版本使用了更高版本的GCC)
    Redis新版本(v6.0及之后)的安装配置图文教程(一) - 图4
    (截取部分报错日志)
    server.c:5153:94: 错误:‘struct redisServer’没有名为‘unixsocket’的成员
    serverLog(LL_NOTICE,”The server is now ready to accept connections at %s”, server.unixsocket);
    ^
    server.c:5154:19: 错误:‘struct redisServer’没有名为‘supervised_mode’的成员
    if (server.supervised_mode == SUPERVISED_SYSTEMD) {
    ^
    server.c:5155:24: 错误:‘struct redisServer’没有名为‘masterhost’的成员
    if (!server.masterhost) {
    ^
    server.c:5168:15: 错误:‘struct redisServer’没有名为‘maxmemory’的成员
    if (server.maxmemory > 0 && server.maxmemory < 10241024) {
    ^
    server.c:5168:39: 错误:‘struct redisServer’没有名为‘maxmemory’的成员
    if (server.maxmemory > 0 && server.maxmemory < 1024
    1024) {
    ^
    server.c:5169:176: 错误:‘struct redisServer’没有名为‘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:5172:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员
    redisSetCpuAffinity(server.server_cpulist);
    ^
    server.c: 在函数‘hasActiveChildProcess’中:
    server.c:1476:1: 警告:在有返回值的函数中,控制流程到达函数尾 [-Wreturn-type]
    }
    ^
    server.c: 在函数‘allPersistenceDisabled’中:
    server.c:1482:1: 警告:在有返回值的函数中,控制流程到达函数尾 [-Wreturn-type]
    }
    ^
    server.c: 在函数‘writeCommandsDeniedByDiskError’中:
    server.c:3790:1: 警告:在有返回值的函数中,控制流程到达函数尾 [-Wreturn-type]
    }
    ^
    server.c: 在函数‘iAmMaster’中:
    server.c:4964:1: 警告:在有返回值的函数中,控制流程到达函数尾 [-Wreturn-type]
    }
    ^
    make[1]: [server.o] 错误 1
    make[1]: 离开目录“/data/software/redis-6.0.5/src”
    make:
    [all] 错误 2

    5、所以要升级gcc的版本,接下来使用yum的方式编译安装GCC,
    安装scl源
    yum install centos-release-scl scl-utils-build
    Redis新版本(v6.0及之后)的安装配置图文教程(一) - 图5

    6、安装8版本的gcc、gcc-c++、gdb工具链
    yum install -y devtoolset-8-toolchain
    Redis新版本(v6.0及之后)的安装配置图文教程(一) - 图6
    7、如下设置,由图可见,GCC版本已升级成8.3.1版本
    scl enable devtoolset-8 bash
    gcc —version
    Redis新版本(v6.0及之后)的安装配置图文教程(一) - 图7

    8、make编译成功后,可用命令 make test 进行测试下(该步骤可选)
    Redis新版本(v6.0及之后)的安装配置图文教程(一) - 图8

    若出现【Redis】编译错误zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory
    使用命令:make MALLOC=libc
    详情参阅:https://www.cnblogs.com/richerdyoung/p/8066373.html

    9、make test过程中可能缺少tcl的依赖包,通过命令 yum install tcl -y可安装
    Redis新版本(v6.0及之后)的安装配置图文教程(一) - 图9
    10、最后,Redis安装完成且通过所有测试项。
    Redis新版本(v6.0及之后)的安装配置图文教程(一) - 图10