今天在一台腾讯云服务器上安装redis,解压后,make 编译一下,结果报错*** [adlist.o] Error 127
这个问题的原因是redis是使用C语言编写的,需要gcc来进行编译,所以是系统没有安装gcc。
按照顺序执行以下命令
yum install cpp
yum install binutils
yum install glibc
yum install glibc-kernheaders
yum install glibc-common
yum install glibc-devel
yum install gcc
yum install make
因为gcc依赖很多,都执行一下,以防万一
重新切换到redis目录编译,make 还是报错:
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
这个是因为,jemalloc 重载了linux 下的ANSI C的malloc 和free 函数,解决办法就是,使用make 编译时添加参数
make MALLOC=libc
见到Hint: It's a good idea to run 'make test' 😉 则编译成功
进入redis的src目录
cd src
./redis-server
启动redis服务
可以使用./redis-cli 测试客户端的访问
最后:
1.切换到redis的安装目录,找到redis.conf文件,备份一下
cp redis.conf redis_backup.conf
再修改redis.conf文件中的bind 127.0.0.1 改成bind 0.0.0.0
2.开启防火墙的端口
centos 7 之前的方法
1.打开端口号:iptables -A INPUT -ptcp --dport 端口号(6379) -j ACCEPT
- 重启刷新端口号:service iptables restart