码迷,mamicode.com
首页 > 其他好文 > 详细

Redis2.8.13安装配置

时间:2015-06-11 00:26:04      阅读:415      评论:0      收藏:0      [点我收藏+]

标签:redis2.8.13安装配置

Redis安装配置

作者:Enoch

时间:201410911:10:01

 

1】下载Redis安装包

wgethttp://download.redis.io/releases/redis-2.8.13.tar.gz

注:wget 时提示 -bash:wget command not found,很明显没有安装wget软件包。一般linux最小化安装时,wget不会默认被安装,这里是CentOS 6.3 32位系统

解决方法:(本人采用的是yum安装yum -y install wget,详见【安装wget】)

下载截图:

技术分享

2】解压安装包

[root@kf55 tmp]# tar -zxvf redis-2.8.13.tar.gz

 

注:【2】之后的操作都需要使用root权限。

 

3】编译

[root@kf55 tmp]#cd redis-2.8.11/

linux系统用

              make MALLOC=libc

mac os x系统用

   make MALLOC=jemalloc

技术分享

编译打印:

[root@kf55 redis-2.8.13]# make MALLOC=libc

cd src && make all

make[1]: Entering directory`/tmp/redis-2.8.13/src‘

rm -rf redis-server redis-sentinelredis-cli redis-benchmark redis-check-dump redis-check-aof *.o *.gcda *.gcno*.gcov redis.info lcov-html

(cd ../deps && make distclean)

make[2]: Entering directory`/tmp/redis-2.8.13/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`/tmp/redis-2.8.13/deps‘

(rm -f .make-*)

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

echo WARN=-Wall >> .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-Wall -O2 -g -ggdb   -I../deps/hiredis-I../deps/linenoise -I../deps/lua/src >> .make-settings

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

(cd ../deps && make hiredislinenoise lua)

make[2]: Entering directory`/tmp/redis-2.8.13/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-ldflags)

(echo "" > .make-cflags)

MAKE hiredis

cd hiredis && make static

make[3]: Entering directory`/tmp/redis-2.8.13/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.oasync.o

make[3]: Leaving directory`/tmp/redis-2.8.13/deps/hiredis‘

MAKE linenoise

cd linenoise && make

make[3]: Entering directory`/tmp/redis-2.8.13/deps/linenoise‘

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

make[3]: Leaving directory`/tmp/redis-2.8.13/deps/linenoise‘

MAKE lua

cd lua/src && make allCFLAGS="-O2 -Wall -DLUA_ANSI " MYLDFLAGS=""

make[3]: Entering directory`/tmp/redis-2.8.13/deps/lua/src‘

cc -O2 -Wall -DLUA_ANSI    -c -o lapi.o lapi.c

cc -O2 -Wall -DLUA_ANSI    -c -o lcode.o lcode.c

cc -O2 -Wall -DLUA_ANSI    -c -o ldebug.o ldebug.c

cc -O2 -Wall -DLUA_ANSI    -c -o ldo.o ldo.c

cc -O2 -Wall -DLUA_ANSI    -c -o ldump.o ldump.c

cc -O2 -Wall -DLUA_ANSI    -c -o lfunc.o lfunc.c

cc -O2 -Wall -DLUA_ANSI    -c -o lgc.o lgc.c

cc -O2 -Wall -DLUA_ANSI    -c -o llex.o llex.c

cc -O2 -Wall -DLUA_ANSI    -c -o lmem.o lmem.c

cc -O2 -Wall -DLUA_ANSI    -c -o lobject.o lobject.c

cc -O2 -Wall -DLUA_ANSI    -c -o lopcodes.o lopcodes.c

cc -O2 -Wall -DLUA_ANSI    -c -o lparser.o lparser.c

cc -O2 -Wall -DLUA_ANSI    -c -o lstate.o lstate.c

cc -O2 -Wall -DLUA_ANSI    -c -o lstring.o lstring.c

cc -O2 -Wall -DLUA_ANSI    -c -o ltable.o ltable.c

cc -O2 -Wall -DLUA_ANSI    -c -o ltm.o ltm.c

cc -O2 -Wall -DLUA_ANSI    -c -o lundump.o lundump.c

cc -O2 -Wall -DLUA_ANSI    -c -o lvm.o lvm.c

cc -O2 -Wall -DLUA_ANSI    -c -o lzio.o lzio.c

cc -O2 -Wall -DLUA_ANSI    -c -o strbuf.o strbuf.c

cc -O2 -Wall -DLUA_ANSI    -c -o lauxlib.o lauxlib.c

cc -O2 -Wall -DLUA_ANSI    -c -o lbaselib.o lbaselib.c

cc -O2 -Wall -DLUA_ANSI    -c -o ldblib.o ldblib.c

cc -O2 -Wall -DLUA_ANSI    -c -o liolib.o liolib.c

cc -O2 -Wall -DLUA_ANSI    -c -o lmathlib.o lmathlib.c

cc -O2 -Wall -DLUA_ANSI    -c -o loslib.o loslib.c

cc -O2 -Wall -DLUA_ANSI    -c -o ltablib.o ltablib.c

cc -O2 -Wall -DLUA_ANSI    -c -o lstrlib.o lstrlib.c

cc -O2 -Wall -DLUA_ANSI    -c -o loadlib.o loadlib.c

cc -O2 -Wall -DLUA_ANSI    -c -o linit.o linit.c

cc -O2 -Wall -DLUA_ANSI    -c -o lua_cjson.o lua_cjson.c

cc -O2 -Wall -DLUA_ANSI    -c -o lua_struct.o lua_struct.c

cc -O2 -Wall -DLUA_ANSI    -c -o lua_cmsgpack.o lua_cmsgpack.c

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

ranlib liblua.a

cc -O2 -Wall -DLUA_ANSI    -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    -c -o luac.o luac.c

cc -O2 -Wall -DLUA_ANSI    -c -o print.o print.c

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

make[3]: Leaving directory`/tmp/redis-2.8.13/deps/lua/src‘

make[2]: Leaving directory`/tmp/redis-2.8.13/deps‘

   CC adlist.o

   CC ae.o

   CC anet.o

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

anet.c:535: 警告:dereferencing pointer s does breakstrict-aliasing rules

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

anet.c:539: 警告:dereferencing pointer s does breakstrict-aliasing rules

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

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

anet.c:513: 警告:dereferencing pointer s does breakstrict-aliasing rules

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

anet.c:517: 警告:dereferencing pointer s does breakstrict-aliasing rules

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

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

anet.c:481: 警告:dereferencing pointer s does breakstrict-aliasing rules

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

anet.c:485: 警告:dereferencing pointer s does breakstrict-aliasing rules

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

   CC dict.o

   CC redis.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

db.c: 在函数‘scanGenericCommand’中:

db.c:420: 警告:此函数中的‘pat’在使用前可能未初始化

db.c:421: 警告:此函数中的‘patlen’在使用前可能未初始化

   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 migrate.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 hyperloglog.o

   CC latency.o

   CC sparkline.o

   LINK redis-server

   INSTALL redis-sentinel

   CC redis-cli.o

   LINK redis-cli

   CC redis-benchmark.o

   LINK redis-benchmark

   CC redis-check-dump.o

   LINK redis-check-dump

    CCredis-check-aof.o

   LINK redis-check-aof

 

Hint: To run ‘make test‘ is a good idea ;)

 

make[1]: Leaving directory`/tmp/redis-2.8.13/src‘

[root@kf55 redis-2.8.13]#

 

4】测试编译是否成功:make test

make test时出现一下错误提示:

You need tcl 8.5 or newer in order to runthe Redis test

make: *** [test] Error 1

技术分享

则需要安装tcl,详见【安装tcl】,安装成功后,make test便可以顺利通过。

(或者参考:http://www.linuxfromscratch.org/blfs/view/cvs/general/tcl.html

出现一下打印表示测试通过:

技术分享

技术分享

 

5】安装,make install

出现一下错误时,切换root用户重新make install即可。

install: cannot create regular file /usr/local/bin/redis-server: Permission denied

make[1]: *** [install] Error 1

make[1]: Leaving directory`/home/kevent/Templates/redis-2.8.9/src‘

成功后,可以看到:

技术分享

 

[root@localhost redis-2.8.9]#ls /usr/local/bin/

iconv redis-benchmark redis-check-aof  redis-check-dump  redis-cli redis-server

技术分享

有的版本没有拷贝,需要手动拷贝:

udo cpredis-server /usr/local/bin/

sudo cpredis-cli /usr/local/bin/

6】启动服务器并测试:redis-server

启动后的打印

技术分享 

6】配置Redis服务器并测试

[root@kf55 redis-2.8.13]# cd utils/

[root@kf55 utils]# ls

build-static-symbols.tcl  install_server.sh  redis_init_script      speed-regression.tcl

generate-command-help.rb  mkrelease.sh       redis_init_script.tpl  whatisdoing.sh

hyperloglog               redis-copy.rb      redis-sha1.rb

[root@kf55 utils]#

[root@kf55 utils]# ./install_server.sh

技术分享

检测是否配置成功并运行:redis-cli ping返回PONG 则运行OK

 

 

8】更改redis_6379服务的名字

[root@kf55utils]# cd /etc/init.d/

[root@kf55init.d]# ls -l

总用量 172

-rwxr-xr-x.1 root root  3378 5 28 22:37 auditd

-r-xr-xr-x.1 root root  1340 11 24 2013 blk-availability

-rwxr-xr-x.1 root root  2826 11 23 2013 crond

-rw-r--r--.1 root root 19175 7  10 21:47 functions

-rwxr-xr-x.1 root root  5866 10 10 2013 halt

-rwxr-xr-x.1 root root 10804 11 23 2013 ip6tables

-rwxr-xr-x.1 root root 10688 11 23 2013 iptables

-rwxr-xr-x.1 root root  4535 10 8 2013 iscsi

-rwxr-xr-x.1 root root  3990 10 8 2013 iscsid

-rwxr-xr-x.1 root root   652 10 10 2013 killall

-r-xr-xr-x.1 root root  2134 11 24 2013 lvm2-lvmetad

-r-xr-xr-x.1 root root  2665 11 24 2013 lvm2-monitor

-rwxr-xr-x.1 root root  2571 4  7 2014 mdmonitor

-rwxr-xr-x.1 root root  2523 6 23 15:37 multipathd

-rwxr-xr-x.1 root root  2989 10 10 2013 netconsole

-rwxr-xr-x.1 root root  5428 10 10 2013 netfs

-rwxr-xr-x.1 root root  6334 10 10 2013 network

-rwxr-xr-x.1 root root  1923 7 15 2013 ntpd

-rwxr-xr-x.1 root root  2043 7 15 2013 ntpdate

-rwxr-xr-x.1 root root  3912 2 20 2014 postfix

-rwxr-xr-x.1 root root  1513 9 17 2013 rdisc

-rwxr-xr-x.1 root root  1677 10 9 14:17 redis_6379

-rwxr-xr-x.1 root root  1822 11 23 2013 restorecond

-rwxr-xr-x.1 root root  2011 8 15 2013 rsyslog

-rwxr-xr-x.1 root root  1698 11 23 2013 sandbox

-rwxr-xr-x.1 root root  2056 11 20 2012 saslauthd

-rwxr-xr-x.1 root root   647 10 10 2013 single

-rwxr-xr-x.1 root root  4534 11 23 2013 sshd

-rwxr-xr-x.1 root root  1144 11 23 2013 sysstat

-rwxr-xr-x.1 root root  2294 11 23 2013 udev-post

[root@kf55init.d]# mv redis_6379 redis

9】刚才已经启动服务,现在使用service关闭服务和开启服务

[root@kf55init.d]# service redis stop

Stopping...

Waitingfor Redis to shutdown ...

Redisstopped

[root@kf55init.d]#

[root@kf55init.d]# service redis start

StartingRedis server...

[root@kf55init.d]#

 

10】用客户端连接测试

[root@kf55 init.d]# redis-cli

127.0.0.1:6379>

127.0.0.1:6379>set mykey 123

OK

127.0.0.1:6379> get mykey

"123"

127.0.0.1:6379>quit

[root@kf55init.d]#

 

11】根据自己的需求修改配置,并重启Redis服务

Redis配置文件所在目录为:/etc/redis/6379.conf

修改“#maxclients 10000” ”maxclients 10000”,目前限制连接数10000,修改后续重启Redis服务。

[root@kf55 init.d]# service redisrestart  

Stopping ...

Redis stopped

Starting Redis server...

[root@kf55 init.d]#

 

 

12】安装Redis C语音API——hiredis

 

[root@kf55src]# cd /tmp/redis-2.8.13

[root@kf55redis-2.8.13]# ls

00-RELEASENOTES  COPYING Makefile   redis.conf        sentinel.conf  utils

BUGS             deps     MANIFESTO runtest           src

CONTRIBUTING     INSTALL README     runtest-sentinel  tests

[root@kf55redis-2.8.13]# cd deps/hiredis/

[root@kf55hiredis]# make;make install

cc-shared -Wl,-soname,libhiredis.so.0.11 -o libhiredis.so  net.o hiredis.o sds.o async.o

mkdir -p/usr/local/include/hiredis /usr/local/lib

cp -ahiredis.h async.h adapters /usr/local/include/hiredis

cp -alibhiredis.so /usr/local/lib/libhiredis.so.0.11

cd/usr/local/lib && ln -sf libhiredis.so.0.11 libhiredis.so.0

cd/usr/local/lib && ln -sf libhiredis.so.0 libhiredis.so

cp -alibhiredis.a /usr/local/lib

[root@kf55hiredis]#

[root@kf55hiredis]# ls

adapters  CHANGELOG.md examples   hiredis.o      net.c     sds.c   zmalloc.h

async.c   COPYING      fmacros.h  libhiredis.a   net.h     sds.h

async.h   dict.c       hiredis.c  libhiredis.so  net.o      sds.o

async.o   dict.h       hiredis.h  Makefile       README.md  test.c

[root@kf55hiredis]#

 

这种方式安装的安装库,没有到达默认目录,需要我们拷贝动态库到系统lib目录,(若是32系统只需要运行 cp libhiredis.so /usr/lib

[root@kf55hiredis]# cp libhiredis.so /usr/lib64/

[root@kf55hiredis]# cp libhiredis.so /usr/lib/

13】更新一下系统动态库配置

[root@kf55hiredis]# /sbin/ldconfig

 

技术分享

【安装wget

       1rpm 安装

       下载wgetRPM包:

       32位:http://mirrors.163.com/centos/6.3/os/i386/Packages/wget-1.12-1.4.el6.i686.rpm

6432位:http://mirrors.163.com/centos/6.3/os/x86_64/Packages/wget-1.12-1.4.el6.x86_64.rpm

             

rpm ivhwget-1.12-1.4.el6.i686.rpm安装即可;64位当然选择wget-1.12-1.4.el6.x86_64.rpm

                           

       2yum安装

              yum -y install wget

技术分享 

【安装tcl

1)下载tcl命令:wget -c http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz

2)解压 tar -zxvf tcl8.6.1-src.tar.gz

3)编译 cd tcl8.6.1/ 后,将一下命令作为一条命令运行

#################################################

cd unix &&

./configure --prefix=/usr           \

           --without-tzdata        \

           --mandir=/usr/share/man \

           $([ $(uname -m) = x86_64 ] && echo --enable-64bit) &&

make &&


sed -e"s@^\(TCL_SRC_DIR=‘\).*@\1/usr/include‘@" \

    -e"/TCL_B/s@=‘\(-L\)\?.*unix@=‘\1/usr/lib@" \

    -i tclConfig.sh

#################################################

打印太多了,就不贴图了,安装的时间比较久,大概5分钟。

 

4)测试安装是否成功:make test

有如下显示即表示测试成功:

Tcl8.6.1 tests running in interp: /tmp/tcl8.6.1/unix/pkgs/thread2.7.0/../../tcltest

Testsrunning in working dir:  /tmp/tcl8.6.1/pkgs/thread2.7.0/tests

Onlyrunning tests that match:  *

Skippingtest files that match:  l.*.test

Onlysourcing test files that match:  *.test

Testsbegan at Thu Oct 09 11:26:08 CST 2014

Thread2.7.0

Mainthreadid is tid0x7fc51f847700

thread.test

tpool.test

tsv.test

ttrace.test

 

Testsended at Thu Oct 09 11:26:23 CST 2014

all.tcl:        Total  116     Passed  116    Skipped 0       Failed  0

Sourced0 Test Files.

5)安装 root用户运行下面命令:

#################################################

make install &&

make install-private-headers &&

ln -v -sf tclsh8.6 /usr/bin/tclsh &&

chmod -v 755 /usr/lib/libtcl8.6.so

#################################################

截取部分打印:

技术分享

 

6)安装OptionalDocumentation,运行一下命令,

下载,wget -c http://downloads.sourceforge.net/tcl/tcl8.6.1-html.tar.gz

解压,在tcl8.6.1/目录解压 tar -xf ../tcl8.6.1-html.tar.gz --strip-components=1

安装,注意此时是接着(5)操作的,所以当前所在目录为tcl8.6.1/unix

#################################################

mkdir -v -p /usr/share/doc/tcl-8.6.1&&

cp -v -r ../html/* /usr/share/doc/tcl-8.6.1

#################################################


本文出自 “smile_青春” 博客,请务必保留此出处http://smileyouth.blog.51cto.com/7273768/1660538

Redis2.8.13安装配置

标签:redis2.8.13安装配置

原文地址:http://smileyouth.blog.51cto.com/7273768/1660538

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!