前言
最近开始搭建Redis集群
操作系统:centos
- 下载redis安装包
wget http://download.redis.io/releases/redis-4.0.10.tar.gz
遇到这种问题不要慌:
curl -O http://download.redis.io/redis-stable.tar.gz
上面已经下载成功,开始我们编译操作:
- 解压缩redis包
tar zxvf redis-5.0.7.tar.gz
- 进入目录:
- 进行编译
make
[root@zzmuap6zwdoqhqxb redis-5.0.7]# make
cd src && make all
make[1]: Entering directory `/root/redis-5.0.7/src'
CC Makefile.dep
make[1]: Leaving directory `/root/redis-5.0.7/src'
make[1]: Entering directory `/root/redis-5.0.7/src'
rm -rf redis-server redis-sentinel redis-cli redis-benchmark redis-check-rdb redis-check-aof *.o *.gcda *.gcno *.gcov redis.info lcov-html Makefile.dep dict-benchmark
(cd ../deps && make distclean)
make[2]: Entering directory `/root/redis-5.0.7/deps'
(cd hiredis && make clean) > /dev/null || true
(cd linenoise && make clean) > /dev/null || true
(cd lua && make clean) > /dev/null || true
(cd jemalloc && [ -f Makefile ] && make distclean) > /dev/null || true
(rm -f .make-*)
make[2]: Leaving directory `/root/redis-5.0.7/deps'
(rm -f .make-*)
echo STD=-std=c99 -pedantic -DREDIS_STATIC='' >> .make-settings
echo WARN=-Wall -W -Wno-missing-field-initializers >> .make-settings
echo OPT=-O2 >> .make-settings
echo MALLOC=jemalloc >> .make-settings
echo CFLAGS= >> .make-settings
echo LDFLAGS= >> .make-settings
echo REDIS_CFLAGS= >> .make-settings
echo REDIS_LDFLAGS= >> .make-settings
echo PREV_FINAL_CFLAGS=-std=c99 -pedantic -DREDIS_STATIC='' -Wall -W -Wno-missing-field-initializers -O2 -g -ggdb -I../deps/hiredis -I../deps/linenoise -I../deps/lua/src -DUSE_JEMALLOC -I../deps/jemalloc/include >> .make-settings
echo PREV_FINAL_LDFLAGS= -g -ggdb -rdynamic >> .make-settings
(cd ../deps && make hiredis linenoise lua jemalloc)
make[2]: Entering directory `/root/redis-5.0.7/deps'
(cd hiredis && make clean) > /dev/null || true
(cd linenoise && make clean) > /dev/null || true
(cd lua && make clean) > /dev/null || true
(cd jemalloc && [ -f Makefile ] && make distclean) > /dev/null || true
(rm -f .make-*)
(echo "" > .make-cflags)
(echo "" > .make-ldflags)
MAKE hiredis
cd hiredis && make static
make[3]: Entering directory `/root/redis-5.0.7/deps/hiredis'
gcc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb net.c
make[3]: gcc: Command not found
make[3]: *** [net.o] Error 127
make[3]: Leaving directory `/root/redis-5.0.7/deps/hiredis'
make[2]: *** [hiredis] Error 2
make[2]: Leaving directory `/root/redis-5.0.7/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 `/root/redis-5.0.7/src'
make: *** [all] Error 2
[root@zzmuap6zwdoqhqxb redis-5.0.7]#
- 编译过程中,发现 gcc 未安装
需要临时安装 GCC,使用 yum 安装 GCC
yum install gcc-c++ -y
可使用命令查看安装的 gcc 版本
再次执行 make 命令进行编译即可make 完成之后,会在src目录下生成 redis的服务程序 redis-server,以及用于测试的客户端程序 redis-cli,使用 redis-server 启动 redis 服务
根据提示,进入src目录:
make all
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: *** [adlist.o] Error 1
make MALLOC=libc
如果有MALLOC 这个 环境变量, 会有用这个环境变量的 去建立Redis。
而且libc 并不是默认的 分配器, 默认的是 jemalloc, 因为 jemalloc 被证明 有更少的 fragmentation problems 比libc。但是如果你又没有jemalloc 而只有 libc 当然 make 出错。 所以加这么一个参数
- 启动试一试:
./redis-server
redis 启动了,我们需要把Redis后台启动,需要修改一下配置文件:
全局搜一下Redis安装目录:如果使用命令:which和 whereis都找不到安装目录,可使用如下方法:
ps -ef | grep redis
得到进程id:
ls -l /proc/进程ID/cwd
要先备份一下这个配置文件:
vim redis.conf
- 先修改我们Redis远程链接地址:
修改后,启动可以后台运行了:
想要后台运行Redis,则在启动的时候就必须指定上面修改过的配置文件
./redis-server /root/redis-5.0.7/redis.conf
[root@zzmuap6zwdoqhqxb src]# ./redis-server /root/redis-5.0.7/redis.conf
19518:C 06 May 2022 00:12:11.236 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
19518:C 06 May 2022 00:12:11.236 # Redis version=5.0.7, bits=64, commit=00000000, modified=0, pid=19518, just started
19518:C 06 May 2022 00:12:11.236 # Configuration loaded
[root@zzmuap6zwdoqhqxb src]# ps -ef |grep redis
root 19537 4414 0 00:12 pts/2