源码编译安装 Redis 6.x

一、编译安装

Redis 官网地址:redis 官网,官网可能会打不开,可以在 github 的发布页中下载:Release-redis

当前最新版 6.0-rc1,下载 redis:

编译 redis6.0 需要 GCC5 以上版本,低版本会报错,如果 GCC 版本低于 5,只能使用 redis5.x 版本。

解压源码文件编译:

注意 make 的时候要添加 MALLOC=libc 参数,否则可能出现以下报错:

这个参数的用处是指定 redis 使用的 malloc 函数为 libc 中的,默认情况下 redis 使用的是 jmalloc,大部分系统默认没有安装,会报错。

编译完成后,安装 redis 到/usr/local/redis-6.0-rc1

给安装目录创建软链接并添加到 PATH 路径下:

执行完成后,直接运行 redis-server 就能启动 redis 了,可以加上--port 参数指定运行端口。

二、服务配置

默认的配置文件在安装目录下:redis.conf ,复制到/etc/redis/ 目录下:

6379 是 redis 的默认监听端口,根据不同端口来命名配置文件可以使主机同时运行多个 redis 实例,方便管理。

配置文件中的一些参数说明:

添加 redis 用户:

设置目录权限:

三、添加服务

3.1 services 服务

安装目录下的 utils 默认有一个 redis_init_script 脚本,复制到/etc/ini.d 目录下:

里面需要修改的内容:

启动和关闭 redis:

3.2 systemd 服务

使用 systemd 服务时,注意 redis 不能以守护进程启动:

复制以下内容到/etc/systemd/system/redis_6379.service

然后执行 systemctl start redis_6379 即可启动服务。

3.2 launchd 服务

2020-02-18 添加 mac 系统下 launchctl 配置。

luanchd 服务是 mac 系统下的后台管理程序,把以下配置保存到文件 homebrew.mxcl.redis.plist,然后放到~/Library/LaunchAgents/路径下 (注意修改程序和日志文件路径):

编辑完成后,载入 redis 配置文件:

启动和停止进程:

上面的配置中没有设置开机自启,如果希望开机自启,要把 18 行的<false/> 改成<true>

四、其他

4.1 低版本 GCC 编译 redis-6.x 报错问题

使用 GCC4 编译 redis-6.0,会报错:

问题原因:

In old gcc version like 4.7/8, there is a bug that miss the macro like [STDC_NO_ATOMICS]

低版本的 GCC 例如 4.7 和 4.8,有一个缺少类似 [STDC_NO_ATOMICS] 宏定义的 BUG 。

可参考 fix: old gcc without atomic support compile failed

解决方案是升级 GCC5 或以上

发表评论