您的位置:首页 > 数据库 > Redis

centos下redis安装

2016-07-24 18:09 537 查看
Redis 3.2.1安装

下载安装包

http://redis.io/下载所需版本的安装包

将安装包拷贝到linux某目录下,解压:

tar -zxvf redis-3.2.1.tar.gz


进入redis解压目录,执行命令:

make


执行make可能会报错,缺少某些包,假如出现如下错误:

make[1]: Entering directory `/home/redis-3.2.1/src'
CC adlist.o
/bin/sh: cc: command not found
make[1]: *** [adlist.o] 错误 127
make[1]: Leaving directory `/home/redis-3.2.1/src'
make: *** [all] 错误 2


代表没有安装make所需要的gcc,使用命令:

yum install gcc


在yum源下载并安装。

然后进行make,若出现如下错误:

make[1]: Entering directory `/home/redis-3.2.1/src'
CC adlist.o
在包含自 adlist.c:34 的文件中:
zmalloc.h:50:31: 错误:jemalloc/jemalloc.h:没有那个文件或目录
zmalloc.h:55:2: 错误:#error "Newer version of jemalloc required"
make[1]: *** [adlist.o] 错误 1
make[1]: Leaving directory `/home/redis-3.2.1/src'
make: *** [all] 错误 2


使用如下命令解决:

make MALLOC=libc


执行结果如下:

cd src && make all

make[1]: Entering directory
/home/redis-3.2.1/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

(cd ../deps && make distclean)

make[2]: Entering directory
/home/redis-3.2.1/deps’

(cd hiredis && make clean) > /dev/null || true

(cd linenoise && make clean) > /dev/null || true

(cd lua && make clean) > /dev/null || true

(cd geohash-int && make clean) > /dev/null || true

(cd jemalloc && [ -f Makefile ] && make distclean) > /dev/null || true

(rm -f .make-*)

make[2]: Leaving directory
/home/redis-3.2.1/deps'

(rm -f .make-*)

echo STD=-std=c99 -pedantic -DREDIS_STATIC= >> .make-settings

echo WARN=-Wall -W >> .make-settings

echo OPT=-O2 >> .make-settings

echo MALLOC=libc >> .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 -O2 -g -ggdb   -I../deps/geohash-int -I../deps/hiredis -I../deps/linenoise -I../deps/lua/src >> .make-settings

echo PREV_FINAL_LDFLAGS=  -g -ggdb -rdynamic >> .make-settings

(cd ../deps && make hiredis linenoise lua geohash-int)

make[2]: Entering directory
/home/redis-3.2.1/deps’

(cd hiredis && make clean) > /dev/null || true

(cd linenoise && make clean) > /dev/null || true

(cd lua && make clean) > /dev/null || true

(cd geohash-int && make clean) > /dev/null || true

(cd jemalloc && [ -f Makefile ] && make distclean) > /dev/null || true

(rm -f .make-*)

(echo “” > .make-ldflags)

(echo “” > .make-cflags)

MAKE hiredis

cd hiredis && make static

make[3]: Entering directory
/home/redis-3.2.1/deps/hiredis'

cc -std=c99 -pedantic -c -O3 -fPIC  -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb  net.c

cc -std=c99 -pedantic -c -O3 -fPIC  -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb  hiredis.c

cc -std=c99 -pedantic -c -O3 -fPIC  -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb  sds.c

cc -std=c99 -pedantic -c -O3 -fPIC  -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb  async.c

ar rcs libhiredis.a net.o hiredis.o sds.o async.o

make[3]: Leaving directory
/home/redis-3.2.1/deps/hiredis’

MAKE linenoise

cd linenoise && make

make[3]: Entering directory
/home/redis-3.2.1/deps/linenoise'

cc  -Wall -Os -g  -c linenoise.c

make[3]: Leaving directory
/home/redis-3.2.1/deps/linenoise’

MAKE lua

cd lua/src && make all CFLAGS=”-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=” ” MYLDFLAGS=”” AR=”ar rcu”

make[3]: Entering directory
/home/redis-3.2.1/deps/lua/src'

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o lapi.o lapi.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o lcode.o lcode.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o ldebug.o ldebug.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o ldo.o ldo.c

ldo.c: 在函数‘f_parser’中:

ldo.c:496: 警告:未使用的变量‘c’

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o ldump.o ldump.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o lfunc.o lfunc.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o lgc.o lgc.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o llex.o llex.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o lmem.o lmem.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o lobject.o lobject.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o lopcodes.o lopcodes.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o lparser.o lparser.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o lstate.o lstate.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o lstring.o lstring.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o ltable.o ltable.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o ltm.o ltm.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o lundump.o lundump.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o lvm.o lvm.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o lzio.o lzio.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o strbuf.o strbuf.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o fpconv.o fpconv.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o lauxlib.o lauxlib.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o lbaselib.o lbaselib.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o ldblib.o ldblib.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o liolib.o liolib.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o lmathlib.o lmathlib.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o loslib.o loslib.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o ltablib.o ltablib.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o lstrlib.o lstrlib.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o loadlib.o loadlib.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o linit.o linit.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o lua_cjson.o lua_cjson.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o lua_struct.o lua_struct.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o lua_cmsgpack.o lua_cmsgpack.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o lua_bit.o lua_bit.c

ar rcu liblua.a lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o strbuf.o fpconv.o lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o lstrlib.o loadlib.o linit.o lua_cjson.o lua_struct.o lua_cmsgpack.o lua_bit.o  # DLL needs all object files

ranlib liblua.a

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=''    -c -o lua.o lua.c

cc -o lua  lua.o liblua.a -lm

liblua.a(loslib.o): In function
os_tmpname’:

loslib.c:(.text+0x35): warning: the use of
tmpnam' is dangerous, better use
mkstemp’

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=” -c -o luac.o luac.c

cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=” -c -o print.o print.c

cc -o luac luac.o print.o liblua.a -lm

make[3]: Leaving directory
/home/redis-3.2.1/deps/lua/src'

MAKE geohash-int

cd geohash-int && make

make[3]: Entering directory
/home/redis-3.2.1/deps/geohash-int’

cc -Wall -O2 -g -c geohash.c

cc -Wall -O2 -g -c geohash_helper.c

make[3]: Leaving directory
/home/redis-3.2.1/deps/geohash-int'

make[2]: Leaving directory
/home/redis-3.2.1/deps’

CC adlist.o

CC quicklist.o

CC ae.o

In file included from ae.c:53:

ae_epoll.c: 在函数‘aeApiAddEvent’中:

ae_epoll.c:75: 警告:缺少初始值设定

ae_epoll.c:75: 警告:(在‘ee.data’的初始化附近)

ae_epoll.c: 在函数‘aeApiDelEvent’中:

ae_epoll.c:92: 警告:缺少初始值设定

ae_epoll.c:92: 警告:(在‘ee.data’的初始化附近)

CC anet.o

anet.c: 在函数‘anetSockName’中:

anet.c:640: 警告:dereferencing pointer ‘s’ does break strict-aliasing rules

anet.c:638: 附注:initialized from here

anet.c:644: 警告:dereferencing pointer ‘s’ does break strict-aliasing rules

anet.c:642: 附注:initialized from here

anet.c: 在函数‘anetPeerToString’中:

anet.c:584: 警告:dereferencing pointer ‘s’ does break strict-aliasing rules

anet.c:582: 附注:initialized from here

anet.c:588: 警告:dereferencing pointer ‘s’ does break strict-aliasing rules

anet.c:586: 附注:initialized from here

anet.c: 在函数‘anetTcpAccept’中:

anet.c:555: 警告:dereferencing pointer ‘s’ does break strict-aliasing rules

anet.c:553: 附注:initialized from here

anet.c:559: 警告:dereferencing pointer ‘s’ does break strict-aliasing rules

anet.c:557: 附注:initialized from here

CC dict.o

CC server.o

CC sds.o

CC zmalloc.o

CC lzf_c.o

CC lzf_d.o

CC pqsort.o

CC zipmap.o

CC sha1.o

CC ziplist.o

CC release.o

CC networking.o

CC util.o

CC object.o

CC db.o

CC replication.o

CC rdb.o

CC t_string.o

CC t_list.o

CC t_set.o

CC t_zset.o

CC t_hash.o

CC config.o

CC aof.o

CC pubsub.o

CC multi.o

CC debug.o

CC sort.o

CC intset.o

CC syncio.o

CC cluster.o

CC crc16.o

CC endianconv.o

CC slowlog.o

CC scripting.o

CC bio.o

CC rio.o

CC rand.o

CC memtest.o

CC crc64.o

CC bitops.o

CC sentinel.o

CC notify.o

CC setproctitle.o

CC blocked.o

CC hyperloglog.o

CC latency.o

CC sparkline.o

CC redis-check-rdb.o

CC geo.o

LINK redis-server

INSTALL redis-sentinel

CC redis-cli.o

LINK redis-cli

CC redis-benchmark.o

LINK redis-benchmark

INSTALL redis-check-rdb

CC redis-check-aof.o

LINK redis-check-aof

Hint: It’s a good idea to run ‘make test’ ;)

make[1]: Leaving directory `/home/redis-3.2.1/src’

make执行完成,进行install,默认的安装路径为/usr/local/bin下,我们把目录稍作改动,安装到/usr/local/redis下,使用PREFIX指定目录:

mkdir /usr/local/redis
make PREFIX=/usr/local/redis install


执行结果:

cd src && make install
make[1]: Entering directory `/home/redis-3.2.1/src'

Hint: It's a good idea to run 'make test' ;)

INSTALL install
INSTALL install
INSTALL install
INSTALL install
INSTALL install
make[1]: Leaving directory `/home/redis-3.2.1/src'


至此,redis安装结束,可以将redis可执行目录添加到环境变量中方便使用,不做描述。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  redis centos linux