源码编译安装Redis 6.x

马谦马谦马谦 Redis评论701字数 1754阅读5分50秒阅读模式

一、编译安装

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 6.x-图片1

二、服务配置

默认的配置文件在安装目录下: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,会报错:

源码编译安装Redis 6.x-图片2

问题原因:

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或以上

 最后更新:2021-3-9
马谦马谦马谦
  • 本文由 马谦马谦马谦 发表于 2017年11月20日22:40:32
  • 转载请务必保留本文链接:https://www.dyxmq.cn/databases/redis/linux-install-redis.html
redis源码分析:链表实现 Redis

redis源码分析:链表实现

一、链表定义 链表在redis中的使用十分广泛,例如列表的底层实现之一就是链表,包括发布、订阅等等功能都是有用到链表的。redis中链表在adlist.h和adlist.c中实现,只用了300+行代码...
redis中的发布和订阅 Redis

redis中的发布和订阅

一、发布和订阅 除了任务队列以外,redis还有一种基于“发布/订阅”模式的消息传递,使得客户端可以订阅某个频道,当频道有消息产生时,会把消息传递到所有的订阅者。和列表不一样的是,发布和订阅可以是一对...
Redis小案例(二):redis实现消息队列 Redis

Redis小案例(二):redis实现消息队列

一、任务队列概述 消息队列,顾名思义就是一个用来传递任务的队列。消息队列在开发中十分常见,经常用在页面后台处理需要很长时间的操作时,例如发送邮件、短信以及进行复杂数据运算操作等,这些操作通常会阻塞页面...
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证