Redis的搭建和Redis的集羣搭建

一、Redis的官網:https://redis.io/      Redis的測試網站:http://try.redis.io/html

二、參考博客:https://www.cnblogs.com/mafly/p/redis_cluster.html前端

http://blog.mayongfa.cn/258.htmlnode

windows安裝參考:http://www.cnblogs.com/jaign/articles/7920588.html#toplinux

三、Centos操做系統中Redis的安裝:c++

開始使用的hadoop用戶和本身指定的目錄,而後出現了一些問題,最後使用了root用戶進行安裝,順利安裝。本身安裝多當心吧。web

首先下載一下Redis,詳細參考http://blog.mayongfa.cn/258.htmlredis

而後將redis解壓縮到指定的目錄,解壓縮操做:sql

四、編譯安裝redis:數據庫

執行make出現錯誤:
apache

[hadoop@slaver1 package]$ cd ../soft/redis-3.2.5/ [hadoop@slaver1 redis-3.2.5]$ ls 00-RELEASENOTES  COPYING  Makefile   redis.conf       runtest-sentinel tests BUGS deps MANIFESTO runtest sentinel.conf utils CONTRIBUTING INSTALL README.md runtest-cluster src [hadoop@slaver1 redis-3.2.5]$ make cd src && make all make[1]: Entering directory `/home/hadoop/soft/redis-3.2.5/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/hadoop/soft/redis-3.2.5/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/hadoop/soft/redis-3.2.5/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=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 -O2 -g -ggdb   -I../deps/geohash-int -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 geohash-int jemalloc) make[2]: Entering directory `/home/hadoop/soft/redis-3.2.5/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/hadoop/soft/redis-3.2.5/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 `/home/hadoop/soft/redis-3.2.5/deps/hiredis' make[2]: *** [hiredis] Error 2 make[2]: Leaving directory `/home/hadoop/soft/redis-3.2.5/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 `/home/hadoop/soft/redis-3.2.5/src' make: *** [all] Error 2 [hadoop@slaver1 redis-3.2.5]$ make install cd src && make install make[1]: Entering directory `/home/hadoop/soft/redis-3.2.5/src'  CC adlist.o /bin/sh: cc: command not found make[1]: *** [adlist.o] Error 127 make[1]: Leaving directory `/home/hadoop/soft/redis-3.2.5/src' make: *** [install] Error 2 [hadoop@slaver1 redis-3.2.5]$ ls 00-RELEASENOTES  COPYING  Makefile   redis.conf       runtest-sentinel tests BUGS deps MANIFESTO runtest sentinel.conf utils CONTRIBUTING INSTALL README.md runtest-cluster src [hadoop@slaver1 redis-3.2.5]$ cd .. [hadoop@slaver1 soft]$ ls apache-maven-3.5.3   flume-1.5.0-cdh5.3.6-bin  kafka_2.9.2-0.8.1          sqoop-1.4.5-cdh5.3.6 apache-tomcat-7.0.8  hadoop-2.5.0-cdh5.3.6     oozie-4.0.0-cdh5.3.6       zookeeper-3.4.5-cdh5.3.6 azkaban hbase-0.98.6-cdh5.3.6     redis-3.2.5 eclipse hive-0.13.1-cdh5.3.6      scala-2.11.4 export jdk1.7.0_79               spark-1.5.1-bin-hadoop2.4 [hadoop@slaver1 soft]$ cd redis-3.2.5/ [hadoop@slaver1 redis-3.2.5]$ ls 00-RELEASENOTES  COPYING  Makefile   redis.conf       runtest-sentinel tests BUGS deps MANIFESTO runtest sentinel.conf utils CONTRIBUTING INSTALL README.md runtest-cluster src [hadoop@slaver1 redis-3.2.5]$ make cd src && make all make[1]: Entering directory `/home/hadoop/soft/redis-3.2.5/src'  CC adlist.o /bin/sh: cc: command not found make[1]: *** [adlist.o] Error 127 make[1]: Leaving directory `/home/hadoop/soft/redis-3.2.5/src' make: *** [all] Error 2 [hadoop@slaver1 redis-3.2.5]$

 出現上面這個錯誤,百度說安裝gcc啥的,安裝了仍是報錯了。而後呢,我按照參考的鏈接操做,執行make不出現錯誤了。

[hadoop@slaver1 package]$ mv redis-3.2.5 /usr/local/redis mv: cannot move `redis-3.2.5' to `/usr/local/redis': Permission denied [hadoop@slaver1 package]$ su Password: [root@slaver1 package]# clear [root@slaver1 package]# ls all_host kafka_2.9.2-0.8.1.tgz azkaban-executor-server-2.5.0.tar.gz           redis-3.2.5 azkaban-sql-script-2.5.0.tar.gz                redis-3.2.5.tar.gz azkaban-web-server-2.5.0.tar.gz                slf4j-1.7.6 greenplum-db-4.3.8.2-build-1-RHEL5-x86_64.7z   slf4j-1.7.6.zip greenplum-db-4.3.8.2-build-1-RHEL5-x86_64.zip [root@slaver1 package]# ll total 298100
-rw-r--r--   1 root   root          25 Jun 11 16:34 all_host -rwxrw-rw-.  1 hadoop hadoop  11157302 Oct 19  2017 azkaban-executor-server-2.5.0.tar.gz -rwxrw-rw-.  1 hadoop hadoop      1928 Oct 19  2017 azkaban-sql-script-2.5.0.tar.gz -rwxrw-rw-.  1 hadoop hadoop  11989669 Oct 19  2017 azkaban-web-server-2.5.0.tar.gz -rw-rw-r--.  1 hadoop hadoop 120991865 Jun 11 14:00 greenplum-db-4.3.8.2-build-1-RHEL5-x86_64.7z -rw-rw-r--.  1 hadoop hadoop 141636514 Jun 11 14:23 greenplum-db-4.3.8.2-build-1-RHEL5-x86_64.zip -rw-rw-r--.  1 hadoop hadoop  13424570 Apr 24 15:18 kafka_2.9.2-0.8.1.tgz drwxrwxr-x   6 hadoop hadoop      4096 Oct 26  2016 redis-3.2.5
-rw-rw-r--   1 hadoop hadoop   1544040 Oct 26  2016 redis-3.2.5.tar.gz drwxrwxrwx. 19 hadoop hadoop      4096 Feb  6  2014 slf4j-1.7.6
-rw-rw-r--.  1 hadoop hadoop   4478807 Apr 24 17:53 slf4j-1.7.6.zip [root@slaver1 package]# mv redis-3.2.5 /usr/local/redis [root@slaver1 package]# ls all_host greenplum-db-4.3.8.2-build-1-RHEL5-x86_64.7z   slf4j-1.7.6 azkaban-executor-server-2.5.0.tar.gz  greenplum-db-4.3.8.2-build-1-RHEL5-x86_64.zip  slf4j-1.7.6.zip azkaban-sql-script-2.5.0.tar.gz       kafka_2.9.2-0.8.1.tgz azkaban-web-server-2.5.0.tar.gz       redis-3.2.5.tar.gz [root@slaver1 package]# cd /usr/local/redis/ [root@slaver1 redis]# ls 00-RELEASENOTES  COPYING  Makefile   redis.conf       runtest-sentinel tests BUGS deps MANIFESTO runtest sentinel.conf utils CONTRIBUTING INSTALL README.md runtest-cluster src [root@slaver1 redis]# make cd src && make all make[1]: Entering directory `/usr/local/redis/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 `/usr/local/redis/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 `/usr/local/redis/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=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 -O2 -g -ggdb   -I../deps/geohash-int -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 geohash-int jemalloc) make[2]: Entering directory `/usr/local/redis/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 `/usr/local/redis/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 `/usr/local/redis/deps/hiredis' MAKE linenoise cd linenoise && make make[3]: Entering directory `/usr/local/redis/deps/linenoise' cc  -Wall -Os -g  -c linenoise.c make[3]: Leaving directory `/usr/local/redis/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 `/usr/local/redis/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: In function ‘f_parser’: ldo.c:496: warning: unused variable ‘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 `/usr/local/redis/deps/lua/src' MAKE geohash-int cd geohash-int && make make[3]: Entering directory `/usr/local/redis/deps/geohash-int' cc  -Wall -O2 -g  -c geohash.c cc -Wall -O2 -g  -c geohash_helper.c make[3]: Leaving directory `/usr/local/redis/deps/geohash-int' MAKE jemalloc cd jemalloc && ./configure --with-lg-quantum=3 --with-jemalloc-prefix=je_ --enable-cc-silence CFLAGS="-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops " LDFLAGS="" checking for xsltproc... /usr/bin/xsltproc checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking whether byte ordering is bigendian... no checking size of void *... 8 checking size of int... 4 checking size of long... 8 checking size of intmax_t... 8 checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking whether pause instruction is compilable... yes checking for ar... ar checking malloc.h usability... yes checking malloc.h presence... yes checking for malloc.h... yes checking whether malloc_usable_size definition can use const argument... no checking whether __attribute__ syntax is compilable... yes checking whether compiler supports -fvisibility=hidden... yes checking whether compiler supports -Werror... yes checking whether tls_model attribute is compilable... yes checking whether compiler supports -Werror... yes checking whether alloc_size attribute is compilable... yes checking whether compiler supports -Werror... yes checking whether format(gnu_printf, ...) attribute is compilable... yes checking whether compiler supports -Werror... yes checking whether format(printf, ...) attribute is compilable... yes checking for a BSD-compatible install... /usr/bin/install -c checking for ranlib... ranlib checking for ld... /usr/bin/ld checking for autoconf... /usr/bin/autoconf checking for memalign... yes checking for valloc... yes checking configured backtracing method... N/A checking for sbrk... yes checking whether utrace(2) is compilable... no checking whether valgrind is compilable... no checking whether a program using __builtin_ffsl is compilable... yes checking LG_PAGE... 12 checking pthread.h usability... yes checking pthread.h presence... yes checking for pthread.h... yes checking for pthread_create in -lpthread... yes checking for library containing clock_gettime... -lrt checking for secure_getenv... no checking for issetugid... no checking for _malloc_thread_cleanup... no checking for _pthread_mutex_init_calloc_cb... no checking for TLS... yes checking whether C11 atomics is compilable... no checking whether atomic(9) is compilable... no checking whether Darwin OSAtomic*() is compilable... no checking whether madvise(2) is compilable... yes checking whether to force 32-bit __sync_{add,sub}_and_fetch()... no checking whether to force 64-bit __sync_{add,sub}_and_fetch()... no checking for __builtin_clz... yes checking whether Darwin OSSpin*() is compilable... no checking whether glibc malloc hook is compilable... yes checking whether glibc memalign hook is compilable... yes checking whether pthreads adaptive mutexes is compilable... yes checking for stdbool.h that conforms to C99... yes checking for _Bool... yes configure: creating ./config.status config.status: creating Makefile config.status: creating jemalloc.pc config.status: creating doc/html.xsl config.status: creating doc/manpages.xsl config.status: creating doc/jemalloc.xml config.status: creating include/jemalloc/jemalloc_macros.h config.status: creating include/jemalloc/jemalloc_protos.h config.status: creating include/jemalloc/jemalloc_typedefs.h config.status: creating include/jemalloc/internal/jemalloc_internal.h config.status: creating test/test.sh config.status: creating test/include/test/jemalloc_test.h config.status: creating config.stamp config.status: creating bin/jemalloc-config config.status: creating bin/jemalloc.sh config.status: creating bin/jeprof config.status: creating include/jemalloc/jemalloc_defs.h config.status: creating include/jemalloc/internal/jemalloc_internal_defs.h config.status: creating test/include/test/jemalloc_test_defs.h config.status: executing include/jemalloc/internal/private_namespace.h commands config.status: executing include/jemalloc/internal/private_unnamespace.h commands config.status: executing include/jemalloc/internal/public_symbols.txt commands config.status: executing include/jemalloc/internal/public_namespace.h commands config.status: executing include/jemalloc/internal/public_unnamespace.h commands config.status: executing include/jemalloc/internal/size_classes.h commands config.status: executing include/jemalloc/jemalloc_protos_jet.h commands config.status: executing include/jemalloc/jemalloc_rename.h commands config.status: executing include/jemalloc/jemalloc_mangle.h commands config.status: executing include/jemalloc/jemalloc_mangle_jet.h commands config.status: executing include/jemalloc/jemalloc.h commands =============================================================================== jemalloc version : 4.0.3-0-ge9192eacf8935e29fc62fddc2701f7942b1cc02c library revision : 2 CONFIG : --with-lg-quantum=3 --with-jemalloc-prefix=je_ --enable-cc-silence 'CFLAGS=-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops ' LDFLAGS= CC : gcc CFLAGS : -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -fvisibility=hidden CPPFLAGS : -D_GNU_SOURCE -D_REENTRANT LDFLAGS : EXTRA_LDFLAGS : LIBS : -lpthread TESTLIBS : -lrt RPATH_EXTRA : XSLTPROC : /usr/bin/xsltproc XSLROOT : PREFIX : /usr/local BINDIR : /usr/local/bin DATADIR : /usr/local/share INCLUDEDIR : /usr/local/include LIBDIR : /usr/local/lib MANDIR : /usr/local/share/man srcroot : abs_srcroot : /usr/local/redis/deps/jemalloc/ objroot : abs_objroot : /usr/local/redis/deps/jemalloc/ JEMALLOC_PREFIX : je_ JEMALLOC_PRIVATE_NAMESPACE : je_ install_suffix : autogen : 0 cc-silence         : 1 debug : 0 code-coverage      : 0 stats : 1 prof : 0 prof-libunwind     : 0 prof-libgcc        : 0 prof-gcc           : 0 tcache : 1 fill : 1 utrace : 0 valgrind : 0 xmalloc : 0 munmap : 0 lazy_lock : 0 tls : 1 cache-oblivious    : 1
=============================================================================== cd jemalloc && make CFLAGS="-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops " LDFLAGS="" lib/libjemalloc.a make[3]: Entering directory `/usr/local/redis/deps/jemalloc' gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/jemalloc.o src/jemalloc.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/arena.o src/arena.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/atomic.o src/atomic.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/base.o src/base.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/bitmap.o src/bitmap.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/chunk.o src/chunk.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/chunk_dss.o src/chunk_dss.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/chunk_mmap.o src/chunk_mmap.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/ckh.o src/ckh.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/ctl.o src/ctl.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/extent.o src/extent.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/hash.o src/hash.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/huge.o src/huge.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/mb.o src/mb.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/mutex.o src/mutex.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/pages.o src/pages.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/prof.o src/prof.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/quarantine.o src/quarantine.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/rtree.o src/rtree.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/stats.o src/stats.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/tcache.o src/tcache.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/util.o src/util.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/tsd.o src/tsd.c ar crus lib/libjemalloc.a src/jemalloc.o src/arena.o src/atomic.o src/base.o src/bitmap.o src/chunk.o src/chunk_dss.o src/chunk_mmap.o src/ckh.o src/ctl.o src/extent.o src/hash.o src/huge.o src/mb.o src/mutex.o src/pages.o src/prof.o src/quarantine.o src/rtree.o src/stats.o src/tcache.o src/util.o src/tsd.o make[3]: Leaving directory `/usr/local/redis/deps/jemalloc' make[2]: Leaving directory `/usr/local/redis/deps'  CC adlist.o CC quicklist.o CC ae.o In file included from ae.c:53: ae_epoll.c: In function ‘aeApiAddEvent’: ae_epoll.c:75: warning: missing initializer ae_epoll.c:75: warning: (near initialization for ‘ee.data’) ae_epoll.c: In function ‘aeApiDelEvent’: ae_epoll.c:92: warning: missing initializer ae_epoll.c:92: warning: (near initialization for ‘ee.data’) CC anet.o anet.c: In function ‘anetSockName’: anet.c:640: warning: dereferencing pointer ‘s’ does break strict-aliasing rules anet.c:638: note: initialized from here anet.c:644: warning: dereferencing pointer ‘s’ does break strict-aliasing rules anet.c:642: note: initialized from here anet.c: In function ‘anetPeerToString’: anet.c:584: warning: dereferencing pointer ‘s’ does break strict-aliasing rules anet.c:582: note: initialized from here anet.c:588: warning: dereferencing pointer ‘s’ does break strict-aliasing rules anet.c:586: note: initialized from here anet.c: In function ‘anetTcpAccept’: anet.c:555: warning: dereferencing pointer ‘s’ does break strict-aliasing rules anet.c:553: note: initialized from here anet.c:559: warning: dereferencing pointer ‘s’ does break strict-aliasing rules anet.c:557: note: 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 `/usr/local/redis/src' [root@slaver1 redis]#

而後執行make install,貌似報錯了,可是其餘教程貌似不執行這條命令:

[root@slaver1 redis]# make install cd src && make install make[1]: Entering directory `/usr/local/redis/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 `/usr/local/redis/src' [root@slaver1 redis]# make install cd src && make install make[1]: Entering directory `/usr/local/redis/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 `/usr/local/redis/src' [root@slaver1 redis]# ls 00-RELEASENOTES  COPYING  Makefile   redis.conf       runtest-sentinel tests BUGS deps MANIFESTO runtest sentinel.conf utils CONTRIBUTING INSTALL README.md runtest-cluster src [root@slaver1 redis]# cd /usr/local/bin/ [root@slaver1 bin]# ls redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli  redis-sentinel  redis-server [root@slaver1 bin]# cd .. [root@slaver1 local]# ls bin data etc games include lib lib64 libexec redis sbin share src [root@slaver1 local]# cd /usr/local/redis/ [root@slaver1 redis]# ls 00-RELEASENOTES  COPYING  Makefile   redis.conf       runtest-sentinel tests BUGS deps MANIFESTO runtest sentinel.conf utils CONTRIBUTING INSTALL README.md runtest-cluster src [root@slaver1 redis]# 

 五、配置redis.conf配置文件:

[root@slaver1 redis]# cd /usr/local/redis/ [root@slaver1 redis]# ls 00-RELEASENOTES  COPYING  Makefile   redis.conf       runtest-sentinel tests BUGS deps MANIFESTO runtest sentinel.conf utils CONTRIBUTING INSTALL README.md runtest-cluster src [root@slaver1 redis]# vim redis.conf 

這裏要修改兩個地方,一個bind和daemonize就行。daemonize配置是否以守護進程的方式啓動Redis,dir配置能夠配置Redis的工做目錄,用於存放持久化文件和日誌文件。logfile配置是日誌文件
bind這裏配置要注意,默認是隻有一個127.0.0.1,這個時候只能本身鏈接,其餘局域網內是鏈接不上的。因此,須要配置多個 IP ,這樣就能夠局域網內進行鏈接了。

可使用:/bind進行搜索找到:

daemonize是設置是否後臺啓動 Redis,默認no,正常都須要以服務形式啓動 Redis,因此這裏設置爲yes。

六、啓動操做:

 

七、測試操做:

 這裏用命令行模式鏈接上 Redis 進行一個簡單的設置、獲取緩存測試。

redis-cli #鏈接 Redis ,默認是本機的。 keys * #查看如今全部 key set name mafly #設置一個key爲`name`,value爲`mafly`的緩存對象。 get name #獲取key爲`name`的緩存

八、退出

九、開始3主3從模式安裝redis集羣,詳細過程參考https://www.cnblogs.com/mafly/p/redis_cluster.html

這裏主要貼一下出現的問題便可,再也不重複記錄過程。


修改時間:2019-08-25 17:51:17

1 Redis的安裝,redis是c語言開發的,安裝redis須要c語言的編譯環境。若是沒有gcc,須要在線安裝,安裝命令yum install gcc-c++
2 安裝步驟。 3 第一步、將redis的源碼包上傳到linux系統。 4 第二步、解壓縮redis。 5 第三步、編譯,進入redis源碼目錄。執行make命令。 6 第四步、安裝。make install PREFIX=/usr/local/redis 7 PREFIX參數指定redis的安裝目錄。通常軟件安裝到/usr目錄下面。

一、Redis的單節點安裝,redis是c語言開發的,安裝redis須要c語言的編譯環境。若是沒有gcc,須要在線安裝,安裝命令yum install gcc-c++。

 1 [root@localhost package]# yum install gcc-c++
 2 Loaded plugins: fastestmirror, refresh-packagekit, security  3 Determining fastest mirrors  4  * base: mirrors.tuna.tsinghua.edu.cn  5  * extras: mirror.bit.edu.cn  6  * updates: mirror.bit.edu.cn  7 base                                                                                                                                                                                                     | 3.7 kB     00:00     
 8 extras                                                                                                                                                                                                   | 3.3 kB     00:00     
 9 updates                                                                                                                                                                                                  | 3.4 kB     00:00     
 10 updates/primary_db                                                                                                                                                                                       | 5.5 MB     00:08     
 11 Setting up Install Process  12 Resolving Dependencies  13 --> Running transaction check  14 ---> Package gcc-c++.i686 0:4.4.7-23.el6 will be installed  15 --> Processing Dependency: libstdc++-devel = 4.4.7-23.el6 for package: gcc-c++-4.4.7-23.el6.i686  16 --> Processing Dependency: libstdc++ = 4.4.7-23.el6 for package: gcc-c++-4.4.7-23.el6.i686  17 --> Processing Dependency: gcc = 4.4.7-23.el6 for package: gcc-c++-4.4.7-23.el6.i686  18 --> Running transaction check  19 ---> Package gcc.i686 0:4.4.7-3.el6 will be updated  20 ---> Package gcc.i686 0:4.4.7-23.el6 will be an update  21 --> Processing Dependency: libgomp = 4.4.7-23.el6 for package: gcc-4.4.7-23.el6.i686  22 --> Processing Dependency: cpp = 4.4.7-23.el6 for package: gcc-4.4.7-23.el6.i686  23 --> Processing Dependency: libgcc >= 4.4.7-23.el6 for package: gcc-4.4.7-23.el6.i686  24 ---> Package libstdc++.i686 0:4.4.7-3.el6 will be updated  25 ---> Package libstdc++.i686 0:4.4.7-23.el6 will be an update  26 ---> Package libstdc++-devel.i686 0:4.4.7-23.el6 will be installed  27 --> Running transaction check  28 ---> Package cpp.i686 0:4.4.7-3.el6 will be updated  29 ---> Package cpp.i686 0:4.4.7-23.el6 will be an update  30 ---> Package libgcc.i686 0:4.4.7-3.el6 will be updated  31 ---> Package libgcc.i686 0:4.4.7-23.el6 will be an update  32 ---> Package libgomp.i686 0:4.4.7-3.el6 will be updated  33 ---> Package libgomp.i686 0:4.4.7-23.el6 will be an update  34 --> Finished Dependency Resolution  35 
 36 Dependencies Resolved  37 
 38 ================================================================================================================================================================================================================================
 39  Package Arch Version Repository Size  40 ================================================================================================================================================================================================================================
 41 Installing:  42  gcc-c++                                                     i686                                             4.4.7-23.el6                                               base                                             4.3 M  43 Installing for dependencies:  44  libstdc++-devel                                             i686                                             4.4.7-23.el6                                               base                                             1.6 M  45 Updating for dependencies:  46  cpp                                                         i686                                             4.4.7-23.el6                                               base                                             3.4 M  47  gcc                                                         i686                                             4.4.7-23.el6                                               base                                             8.2 M  48  libgcc                                                      i686                                             4.4.7-23.el6                                               base                                             115 k  49  libgomp                                                     i686                                             4.4.7-23.el6                                               base                                             137 k  50  libstdc++                                                   i686                                             4.4.7-23.el6                                               base                                             303 k  51 
 52 Transaction Summary  53 ================================================================================================================================================================================================================================
 54 Install       2 Package(s)  55 Upgrade       5 Package(s)  56 
 57 Total download size: 18 M  58 Is this ok [y/N]: y  59 Downloading Packages:  60 (1/7): cpp-4.4.7-23.el6.i686.rpm                                                                                                                                                                         | 3.4 MB     00:01     
 61 (2/7): gcc-4.4.7-23.el6.i686.rpm                                                                                                                                                                         | 8.2 MB     00:01     
 62 (3/7): gcc-c++-4.4.7-23.el6.i686.rpm                                                                                                                                                                     | 4.3 MB     00:01     
 63 (4/7): libgcc-4.4.7-23.el6.i686.rpm                                                                                                                                                                      | 115 kB     00:00     
 64 (5/7): libgomp-4.4.7-23.el6.i686.rpm                                                                                                                                                                     | 137 kB     00:00     
 65 (6/7): libstdc++-4.4.7-23.el6.i686.rpm                                                                                                                                                                   | 303 kB     00:00     
 66 (7/7): libstdc++-devel-4.4.7-23.el6.i686.rpm                                                                                                                                                             | 1.6 MB     00:00     
 67 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 68 Total                                                                                                                                                                                           2.0 MB/s |  18 MB     00:08     
 69 warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY  70 Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
 71 Importing GPG key 0xC105B9DE:  72  Userid : CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org>
 73  Package: centos-release-6-4.el6.centos.10.i686 (@anaconda-CentOS-201303020136.i386/6.4)  74  From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
 75 Is this ok [y/N]: y  76 Running rpm_check_debug  77 Running Transaction Test  78 Transaction Test Succeeded  79 Running Transaction  80   Updating   : libgcc-4.4.7-23.el6.i686                                                                                                                                                                                    1/12 
 81   Updating   : libstdc++-4.4.7-23.el6.i686                                                                                                                                                                                 2/12 
 82   Installing : libstdc++-devel-4.4.7-23.el6.i686                                                                                                                                                                           3/12 
 83   Updating   : libgomp-4.4.7-23.el6.i686                                                                                                                                                                                   4/12 
 84   Updating   : cpp-4.4.7-23.el6.i686                                                                                                                                                                                       5/12 
 85   Updating   : gcc-4.4.7-23.el6.i686                                                                                                                                                                                       6/12 
 86   Installing : gcc-c++-4.4.7-23.el6.i686                                                                                                                                                                                   7/12 
 87   Cleanup    : gcc-4.4.7-3.el6.i686                                                                                                                                                                                        8/12 
 88   Cleanup    : libstdc++-4.4.7-3.el6.i686                                                                                                                                                                                  9/12 
 89   Cleanup    : libgcc-4.4.7-3.el6.i686                                                                                                                                                                                    10/12 
 90   Cleanup    : cpp-4.4.7-3.el6.i686                                                                                                                                                                                       11/12 
 91   Cleanup    : libgomp-4.4.7-3.el6.i686                                                                                                                                                                                   12/12 
 92   Verifying  : libgcc-4.4.7-23.el6.i686                                                                                                                                                                                    1/12 
 93   Verifying  : cpp-4.4.7-23.el6.i686                                                                                                                                                                                       2/12 
 94   Verifying  : libgomp-4.4.7-23.el6.i686                                                                                                                                                                                   3/12 
 95   Verifying  : libstdc++-4.4.7-23.el6.i686                                                                                                                                                                                 4/12 
 96   Verifying  : libstdc++-devel-4.4.7-23.el6.i686                                                                                                                                                                           5/12 
 97   Verifying  : gcc-4.4.7-23.el6.i686                                                                                                                                                                                       6/12 
 98   Verifying  : gcc-c++-4.4.7-23.el6.i686                                                                                                                                                                                   7/12 
 99   Verifying  : libstdc++-4.4.7-3.el6.i686                                                                                                                                                                                  8/12 
100   Verifying  : libgomp-4.4.7-3.el6.i686                                                                                                                                                                                    9/12 
101   Verifying  : cpp-4.4.7-3.el6.i686                                                                                                                                                                                       10/12 
102   Verifying  : libgcc-4.4.7-3.el6.i686                                                                                                                                                                                    11/12 
103   Verifying  : gcc-4.4.7-3.el6.i686                                                                                                                                                                                       12/12 
104 
105 Installed: 106   gcc-c++.i686 0:4.4.7-23.el6 107 
108 Dependency Installed: 109   libstdc++-devel.i686 0:4.4.7-23.el6 110 
111 Dependency Updated: 112   cpp.i686 0:4.4.7-23.el6                   gcc.i686 0:4.4.7-23.el6                   libgcc.i686 0:4.4.7-23.el6                   libgomp.i686 0:4.4.7-23.el6                   libstdc++.i686 0:4.4.7-23.el6 113 
114 Complete!
115 [root@localhost package]#

二、將redis的源碼包上傳到linux系統。而後進行解壓縮操做。

[root@localhost package]# tar -zxvf redis-3.0.0.tar.gz -C /home/hadoop/soft/

注意:c語言編譯必須有MakeFile文件。沒有的話本身建立,有的話直接編譯便可。

三、編譯,進入redis源碼目錄。執行make命令。而後進行編譯操做。

 1 [root@localhost soft]# ls  2 apache-tomcat-7.0.47  jdk1.7.0_55  redis-3.0.0  zookeeper-3.4.6
 3 [root@localhost soft]# cd redis-3.0.0/
 4 [root@localhost redis-3.0.0]# ls  5 00-RELEASENOTES  BUGS  CONTRIBUTING  COPYING  deps  INSTALL  Makefile  MANIFESTO  README  redis.conf  runtest  runtest-cluster  runtest-sentinel sentinel.conf src tests utils  6 [root@localhost redis-3.0.0]# make  7 cd src && make all  8 make[1]: Entering directory `/home/hadoop/soft/redis-3.0.0/src'  9 rm -rf redis-server redis-sentinel redis-cli redis-benchmark redis-check-dump redis-check-aof *.o *.gcda *.gcno *.gcov redis.info lcov-html  10 (cd ../deps && make distclean)  11 make[2]: Entering directory `/home/hadoop/soft/redis-3.0.0/deps'  12 (cd hiredis && make clean) > /dev/null || true
 13 (cd linenoise && make clean) > /dev/null || true
 14 (cd lua && make clean) > /dev/null || true
 15 (cd jemalloc && [ -f Makefile ] && make distclean) > /dev/null || true
 16 (rm -f .make-*)  17 make[2]: Leaving directory `/home/hadoop/soft/redis-3.0.0/deps'  18 (rm -f .make-*)  19 echo STD=-std=c99 -pedantic >> .make-settings  20 echo WARN=-Wall -W >> .make-settings  21 echo OPT=-O2 >> .make-settings  22 echo MALLOC=jemalloc >> .make-settings  23 echo CFLAGS= >> .make-settings  24 echo LDFLAGS= >> .make-settings  25 echo REDIS_CFLAGS= >> .make-settings  26 echo REDIS_LDFLAGS= >> .make-settings  27 echo PREV_FINAL_CFLAGS=-std=c99 -pedantic -Wall -W -O2 -g -ggdb   -I../deps/hiredis -I../deps/linenoise -I../deps/lua/src -DUSE_JEMALLOC -I../deps/jemalloc/include >> .make-settings  28 echo PREV_FINAL_LDFLAGS=  -g -ggdb -rdynamic >> .make-settings  29 (cd ../deps && make hiredis linenoise lua jemalloc)  30 make[2]: Entering directory `/home/hadoop/soft/redis-3.0.0/deps'  31 (cd hiredis && make clean) > /dev/null || true
 32 (cd linenoise && make clean) > /dev/null || true
 33 (cd lua && make clean) > /dev/null || true
 34 (cd jemalloc && [ -f Makefile ] && make distclean) > /dev/null || true
 35 (rm -f .make-*)  36 (echo "" > .make-ldflags)  37 (echo "" > .make-cflags)  38 MAKE hiredis  39 cd hiredis && make static
 40 make[3]: Entering directory `/home/hadoop/soft/redis-3.0.0/deps/hiredis'  41 cc -std=c99 -pedantic -c -O3 -fPIC  -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb net.c  42 cc -std=c99 -pedantic -c -O3 -fPIC  -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb hiredis.c  43 cc -std=c99 -pedantic -c -O3 -fPIC  -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb sds.c  44 cc -std=c99 -pedantic -c -O3 -fPIC  -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb  async.c  45 ar rcs libhiredis.a net.o hiredis.o sds.o async.o  46 make[3]: Leaving directory `/home/hadoop/soft/redis-3.0.0/deps/hiredis'  47 MAKE linenoise  48 cd linenoise && make  49 make[3]: Entering directory `/home/hadoop/soft/redis-3.0.0/deps/linenoise'  50 cc  -Wall -Os -g  -c linenoise.c  51 make[3]: Leaving directory `/home/hadoop/soft/redis-3.0.0/deps/linenoise'  52 MAKE lua  53 cd lua/src && make all CFLAGS="-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL " MYLDFLAGS="" AR="ar rcu"
 54 make[3]: Entering directory `/home/hadoop/soft/redis-3.0.0/deps/lua/src'  55 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o lapi.o lapi.c  56 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o lcode.o lcode.c  57 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o ldebug.o ldebug.c  58 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o ldo.o ldo.c  59 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o ldump.o ldump.c  60 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o lfunc.o lfunc.c  61 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o lgc.o lgc.c  62 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o llex.o llex.c  63 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o lmem.o lmem.c  64 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o lobject.o lobject.c  65 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o lopcodes.o lopcodes.c  66 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o lparser.o lparser.c  67 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o lstate.o lstate.c  68 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o lstring.o lstring.c  69 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o ltable.o ltable.c  70 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o ltm.o ltm.c  71 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o lundump.o lundump.c  72 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o lvm.o lvm.c  73 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o lzio.o lzio.c  74 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o strbuf.o strbuf.c  75 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o fpconv.o fpconv.c  76 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o lauxlib.o lauxlib.c  77 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o lbaselib.o lbaselib.c  78 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o ldblib.o ldblib.c  79 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o liolib.o liolib.c  80 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o lmathlib.o lmathlib.c  81 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o loslib.o loslib.c  82 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o ltablib.o ltablib.c  83 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o lstrlib.o lstrlib.c  84 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o loadlib.o loadlib.c  85 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o linit.o linit.c  86 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o lua_cjson.o lua_cjson.c  87 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o lua_struct.o lua_struct.c  88 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o lua_cmsgpack.o lua_cmsgpack.c  89 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o lua_bit.o lua_bit.c  90 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  91 ranlib liblua.a  92 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o lua.o lua.c  93 cc -o lua  lua.o liblua.a -lm  94 liblua.a(loslib.o): In function `os_tmpname':
 95 loslib.c:(.text+0x46): warning: the use of `tmpnam' is dangerous, better use `mkstemp'
 96 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o luac.o luac.c  97 cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL    -c -o print.o print.c  98 cc -o luac  luac.o print.o liblua.a -lm  99 make[3]: Leaving directory `/home/hadoop/soft/redis-3.0.0/deps/lua/src' 100 MAKE jemalloc 101 cd jemalloc && ./configure --with-jemalloc-prefix=je_ --enable-cc-silence CFLAGS="-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops " LDFLAGS=""
102 checking for xsltproc... /usr/bin/xsltproc 103 checking for gcc... gcc 104 checking whether the C compiler works... yes 105 checking for C compiler default output file name... a.out
106 checking for suffix of executables... 107 checking whether we are cross compiling... no 108 checking for suffix of object files... o 109 checking whether we are using the GNU C compiler... yes 110 checking whether gcc accepts -g... yes 111 checking for gcc option to accept ISO C89... none needed 112 checking how to run the C preprocessor... gcc -E 113 checking for grep that handles long lines and -e... /bin/grep 114 checking for egrep... /bin/grep -E 115 checking for ANSI C header files... yes 116 checking for sys/types.h... yes 117 checking for sys/stat.h... yes 118 checking for stdlib.h... yes 119 checking for string.h... yes 120 checking for memory.h... yes 121 checking for strings.h... yes 122 checking for inttypes.h... yes 123 checking for stdint.h... yes 124 checking for unistd.h... yes 125 checking whether byte ordering is bigendian... no 126 checking size of void *... 4
127 checking size of int... 4
128 checking size of long... 4
129 checking size of intmax_t... 8
130 checking build system type... i686-pc-linux-gnu 131 checking host system type... i686-pc-linux-gnu 132 checking whether pause instruction is compilable... yes 133 checking whether SSE2 intrinsics is compilable... no 134 checking for ar... ar 135 checking whether __attribute__ syntax is compilable... yes 136 checking whether compiler supports -fvisibility=hidden... yes 137 checking whether compiler supports -Werror... yes 138 checking whether tls_model attribute is compilable... yes 139 checking for a BSD-compatible install... /usr/bin/install -c 140 checking for ranlib... ranlib 141 checking for ld... /usr/bin/ld 142 checking for autoconf... false
143 checking for memalign... yes 144 checking for valloc... yes 145 checking configured backtracing method... N/A 146 checking for sbrk... yes 147 checking whether utrace(2) is compilable... no 148 checking whether valgrind is compilable... no 149 checking STATIC_PAGE_SHIFT... 12
150 checking pthread.h usability... yes 151 checking pthread.h presence... yes 152 checking for pthread.h... yes 153 checking for pthread_create in -lpthread... yes 154 checking for _malloc_thread_cleanup... no 155 checking for _pthread_mutex_init_calloc_cb... no 156 checking for TLS... yes 157 checking whether a program using ffsl is compilable... yes 158 checking whether atomic(9) is compilable... no 159 checking whether Darwin OSAtomic*() is compilable... no 160 checking whether to force 32-bit __sync_{add,sub}_and_fetch()... no 161 checking whether to force 64-bit __sync_{add,sub}_and_fetch()... no 162 checking whether Darwin OSSpin*() is compilable... no 163 checking for stdbool.h that conforms to C99... yes 164 checking for _Bool... yes 165 configure: creating ./config.status 166 config.status: creating Makefile 167 config.status: creating doc/html.xsl 168 config.status: creating doc/manpages.xsl 169 config.status: creating doc/jemalloc.xml 170 config.status: creating include/jemalloc/jemalloc_macros.h 171 config.status: creating include/jemalloc/jemalloc_protos.h 172 config.status: creating include/jemalloc/internal/jemalloc_internal.h 173 config.status: creating test/test.sh 174 config.status: creating test/include/test/jemalloc_test.h 175 config.status: creating config.stamp 176 config.status: creating bin/jemalloc.sh 177 config.status: creating include/jemalloc/jemalloc_defs.h 178 config.status: creating include/jemalloc/internal/jemalloc_internal_defs.h 179 config.status: creating test/include/test/jemalloc_test_defs.h 180 config.status: executing include/jemalloc/internal/private_namespace.h commands 181 config.status: executing include/jemalloc/internal/private_unnamespace.h commands 182 config.status: executing include/jemalloc/internal/public_symbols.txt commands 183 config.status: executing include/jemalloc/internal/public_namespace.h commands 184 config.status: executing include/jemalloc/internal/public_unnamespace.h commands 185 config.status: executing include/jemalloc/internal/size_classes.h commands 186 config.status: executing include/jemalloc/jemalloc_protos_jet.h commands 187 config.status: executing include/jemalloc/jemalloc_rename.h commands 188 config.status: executing include/jemalloc/jemalloc_mangle.h commands 189 config.status: executing include/jemalloc/jemalloc_mangle_jet.h commands 190 config.status: executing include/jemalloc/jemalloc.h commands 191 ===============================================================================
192 jemalloc version   : 3.6.0-0-g46c0af68bd248b04df75e4f92d5fb804c3d75340 193 library revision   : 1
194 
195 CC : gcc 196 CPPFLAGS           :  -D_GNU_SOURCE -D_REENTRANT 197 CFLAGS             : -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -fvisibility=hidden 198 LDFLAGS : 199 EXTRA_LDFLAGS : 200 LIBS               :  -lpthread 201 RPATH_EXTRA : 202 
203 XSLTPROC           : /usr/bin/xsltproc 204 XSLROOT : 205 
206 PREFIX             : /usr/local 207 BINDIR             : /usr/local/bin 208 INCLUDEDIR         : /usr/local/include 209 LIBDIR             : /usr/local/lib 210 DATADIR            : /usr/local/share 211 MANDIR             : /usr/local/share/man 212 
213 srcroot : 214 abs_srcroot        : /home/hadoop/soft/redis-3.0.0/deps/jemalloc/
215 objroot : 216 abs_objroot        : /home/hadoop/soft/redis-3.0.0/deps/jemalloc/
217 
218 JEMALLOC_PREFIX : je_ 219 JEMALLOC_PRIVATE_NAMESPACE 220  : je_ 221 install_suffix : 222 autogen            : 0
223 experimental       : 1
224 cc-silence         : 1
225 debug              : 0
226 code-coverage      : 0
227 stats              : 1
228 prof               : 0
229 prof-libunwind     : 0
230 prof-libgcc        : 0
231 prof-gcc           : 0
232 tcache             : 1
233 fill               : 1
234 utrace             : 0
235 valgrind           : 0
236 xmalloc            : 0
237 mremap             : 0
238 munmap             : 0
239 dss                : 0
240 lazy_lock          : 0
241 tls                : 1
242 ===============================================================================
243 cd jemalloc && make CFLAGS="-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops " LDFLAGS="" lib/libjemalloc.a 244 make[3]: Entering directory `/home/hadoop/soft/redis-3.0.0/deps/jemalloc' 245 gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/jemalloc.o src/jemalloc.c 246 gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/arena.o src/arena.c 247 gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/atomic.o src/atomic.c 248 gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/base.o src/base.c 249 gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/bitmap.o src/bitmap.c 250 gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/chunk.o src/chunk.c 251 gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/chunk_dss.o src/chunk_dss.c 252 gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/chunk_mmap.o src/chunk_mmap.c 253 gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/ckh.o src/ckh.c 254 gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/ctl.o src/ctl.c 255 gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/extent.o src/extent.c 256 gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/hash.o src/hash.c 257 gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/huge.o src/huge.c 258 gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/mb.o src/mb.c 259 gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/mutex.o src/mutex.c 260 gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/prof.o src/prof.c 261 gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/quarantine.o src/quarantine.c 262 gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/rtree.o src/rtree.c 263 gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/stats.o src/stats.c 264 gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/tcache.o src/tcache.c 265 gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/util.o src/util.c 266 gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops  -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/tsd.o src/tsd.c 267 ar crus lib/libjemalloc.a src/jemalloc.o src/arena.o src/atomic.o src/base.o src/bitmap.o src/chunk.o src/chunk_dss.o src/chunk_mmap.o src/ckh.o src/ctl.o src/extent.o src/hash.o src/huge.o src/mb.o src/mutex.o src/prof.o src/quarantine.o src/rtree.o src/stats.o src/tcache.o src/util.o src/tsd.o 268 make[3]: Leaving directory `/home/hadoop/soft/redis-3.0.0/deps/jemalloc' 269 make[2]: Leaving directory `/home/hadoop/soft/redis-3.0.0/deps' 270  CC adlist.o 271  CC ae.o 272  CC anet.o 273 anet.c: In function ‘anetSockName’: 274 anet.c:605: warning: dereferencing pointer ‘s’ does break strict-aliasing rules 275 anet.c:603: note: initialized from here 276 anet.c:609: warning: dereferencing pointer ‘s’ does break strict-aliasing rules 277 anet.c:607: note: initialized from here 278 anet.c: In function ‘anetPeerToString’: 279 anet.c:566: warning: dereferencing pointer ‘s’ does break strict-aliasing rules 280 anet.c:564: note: initialized from here 281 anet.c:570: warning: dereferencing pointer ‘s’ does break strict-aliasing rules 282 anet.c:568: note: initialized from here 283 anet.c: In function ‘anetTcpAccept’: 284 anet.c:537: warning: dereferencing pointer ‘s’ does break strict-aliasing rules 285 anet.c:535: note: initialized from here 286 anet.c:541: warning: dereferencing pointer ‘s’ does break strict-aliasing rules 287 anet.c:539: note: initialized from here 288  CC dict.o 289  CC redis.o 290  CC sds.o 291  CC zmalloc.o 292  CC lzf_c.o 293  CC lzf_d.o 294  CC pqsort.o 295  CC zipmap.o 296  CC sha1.o 297  CC ziplist.o 298  CC release.o 299  CC networking.o 300  CC util.o 301     CC object.o 302  CC db.o 303 db.c: In function ‘scanGenericCommand’: 304 db.c:428: warning: ‘pat’ may be used uninitialized in this function 305 db.c:429: warning: ‘patlen’ may be used uninitialized in this function 306  CC replication.o 307  CC rdb.o 308  CC t_string.o 309  CC t_list.o 310  CC t_set.o 311  CC t_zset.o 312  CC t_hash.o 313  CC config.o 314  CC aof.o 315  CC pubsub.o 316  CC multi.o 317  CC debug.o 318  CC sort.o 319  CC intset.o 320  CC syncio.o 321  CC cluster.o 322  CC crc16.o 323  CC endianconv.o 324  CC slowlog.o 325  CC scripting.o 326  CC bio.o 327  CC rio.o 328  CC rand.o 329  CC memtest.o 330  CC crc64.o 331  CC bitops.o 332  CC sentinel.o 333  CC notify.o 334  CC setproctitle.o 335  CC blocked.o 336  CC hyperloglog.o 337  CC latency.o 338  CC sparkline.o 339     LINK redis-server 340     INSTALL redis-sentinel 341     CC redis-cli.o 342     LINK redis-cli 343     CC redis-benchmark.o 344     LINK redis-benchmark 345     CC redis-check-dump.o 346     LINK redis-check-dump 347     CC redis-check-aof.o 348     LINK redis-check-aof 349 
350 Hint: It's a good idea to run 'make test' ;)
351 
352 make[1]: Leaving directory `/home/hadoop/soft/redis-3.0.0/src' 353 [root@localhost redis-3.0.0]#

四、安裝。make install PREFIX=/usr/local/redis
PREFIX參數指定redis的安裝目錄。通常軟件安裝到/usr目錄下面。指定參數將redis安裝到/usr/local目錄下面。

 1 [root@localhost redis-3.0.0]# make install PREFIX=/usr/local/redis  2 cd src && make install  3 make[1]: Entering directory `/home/hadoop/soft/redis-3.0.0/src'  4 
 5 Hint: It's a good idea to run 'make test' ;)
 6 
 7  INSTALL install  8  INSTALL install  9  INSTALL install 10  INSTALL install 11  INSTALL install 12 make[1]: Leaving directory `/home/hadoop/soft/redis-3.0.0/src' 13 [root@localhost redis-3.0.0]#

啓動redis服務。

redis-server服務端,redis-cli客戶端。
啓動redis(前端啓動模式,會佔用一個終端,Port: 6379,通常使用後端啓動模式,關閉前端啓動模式ctrl+c):
[root@localhost bin]# ./redis-server

 1 # Note that Redis will write a pid file in /var/run/redis.pid when daemonized.  2 # 是否在後臺運行,默認是no不在後臺運行,修改爲了yes,在後臺運行便可。  3 daemonize yes  4 
 5 後臺運行啓動命令:  6 [root@localhost bin]# ./redis-server redis.conf  7 
 8 查看是否後臺運行redis:  9 [root@localhost bin]# ps aux | grep redis 10 
11 鏈接redis服務: 12 [root@localhost bin]# ./redis-cli 13 127.0.0.1:6379> 
14 
15 鏈接其餘ip地址的redis以下所示: 16 [root@localhost bin]# ./redis-cli -h 192.168.110.140 -p 6379
17 192.168.110.140:6379> ping 18 PONG 19 192.168.110.140:6379>
20 
21 檢測redis是否聯通: 22 127.0.0.1:6379> ping 23 PONG

操做以下所示:

 1 [root@localhost bin]# ./redis-server  2 5638:C 25 Aug 03:32:58.331 # Warning: no config file specified, using the default config. In order to specify a config file use ./redis-server /path/to/redis.conf  3 5638:M 25 Aug 03:32:58.332 * Increased maximum number of open files to 10032 (it was originally set to 1024).  4 5638:M 25 Aug 03:32:58.339 # Warning: 32 bit instance detected but no memory limit set. Setting 3 GB maxmemory limit with 'noeviction' policy now.  5  _._  6            _.-``__ ''-._  7       _.-``    `.  `_.  ''-._           Redis 3.0.0 (00000000/0) 32 bit  8   .-`` .-```.  ```\/    _.,_ ''-._  9  (    ' , .-` | `, ) Running in standalone mode
10  |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
11  |    `-._   `._    /     _.-' | PID: 5638
12   `-._    `-._  `-./  _.-' _.-'                                   
13  |`-._`-._    `-.__.-' _.-'_.-'| 
14  |    `-._`-._        _.-'_.-'    |           http://redis.io 
15   `-._    `-._`-.__.-'_.-'    _.-'                                   
16  |`-._`-._    `-.__.-' _.-'_.-'| 
17  |    `-._`-._        _.-'_.-'    |                                  
18   `-._    `-._`-.__.-'_.-'    _.-'                                   
19       `-._    `-.__.-' _.-'                                       
20           `-._        _.-'                                           
21               `-.__.-'                                               
22 
23 5638:M 25 Aug 03:32:58.348 # Server started, Redis version 3.0.0
24 5638:M 25 Aug 03:32:58.348 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. 25 5638:M 25 Aug 03:32:58.349 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. 26 5638:M 25 Aug 03:32:58.349 * The server is now ready to accept connections on port 6379
27 ^C5638:signal-handler (1566729356) Received SIGINT scheduling shutdown... 28 5638:M 25 Aug 03:35:56.243 # User requested shutdown... 29 5638:M 25 Aug 03:35:56.243 * Saving the final RDB snapshot before exiting. 30 5638:M 25 Aug 03:35:56.267 * DB saved on disk 31 5638:M 25 Aug 03:35:56.267 # Redis is now ready to exit, bye bye... 32 [root@localhost bin]# cp /home/hadoop/soft/redis-3.0.0/redis.conf ./
33 You have new mail in /var/spool/mail/root 34 [root@localhost bin]# ls 35 dump.rdb  redis-benchmark  redis-check-aof  redis-check-dump  redis-cli  redis.conf  redis-sentinel  redis-server 36 [root@localhost bin]# vim redis.conf 37 [root@localhost bin]# ./redis-server redis.conf 38 [root@localhost bin]# ps aux | grep redis 39 root      6378  0.2  0.1  33936  1708 ?        Ssl  03:40   0:00 ./redis-server *:6379    
40 root      6383  0.0  0.0   4356   728 pts/0    S+   03:40   0:00 grep redis 41 [root@localhost bin]# ./redis-cli 42 127.0.0.1:6379> ping 43 PONG 44 127.0.0.1:6379>
 1 [root@localhost redis]# cd bin/
 2 [root@localhost bin]# ls  3 dump.rdb  redis-benchmark  redis-check-aof  redis-check-dump  redis-cli  redis.conf  redis-sentinel  redis-server  4 [root@localhost bin]# clear  5 [root@localhost bin]# ls  6 dump.rdb  redis-benchmark  redis-check-aof  redis-check-dump  redis-cli  redis.conf  redis-sentinel  redis-server  7 [root@localhost bin]# ./redis-cli -h 192.168.110.140 -p 6379
 8 192.168.110.140:6379> ping  9 PONG 10 192.168.110.140:6379>

修改時間:2019-10-16  16:11:33

一、Redis集羣的搭建。
Redis集羣中至少應該有三個節點。要保證集羣的高可用,須要每一個節點有一個備份機。

Redis集羣至少須要6臺服務器(三主三從,三從是備份機,保障高可用,redis槽的完整性)。

這裏搭建僞分佈式,可使用一臺虛擬機運行6個redis實例。須要修改redis的端口號7001-7006(記住關閉防火牆)。

注意:由於上面已經搭建好一個redis節點了,因此這裏直接拷貝,在一臺機器上面進行了模擬redis集羣,記得刪除dump.rdb,這個東西,它是一個快照,保存了那個redis節點的數據,這裏是拷貝的,搭建集羣,保證沒有數據。

 1 [root@localhost local]# ls  2 bin etc games include lib libexec redis sbin share src  3 [root@localhost local]# mkdir redis-cluster  4 [root@localhost local]# ls  5 bin  etc  games  include  lib  libexec  redis  redis-cluster sbin share src  6 [root@localhost local]# cp -r redis/bin/ redis-cluster/redis01  7 [root@localhost local]# ls  8 bin  etc  games  include  lib  libexec  redis  redis-cluster sbin share src  9 [root@localhost local]# cd redis-cluster/
10 [root@localhost redis-cluster]# ls 11 redis01 12 [root@localhost redis-cluster]# cd redis01/
13 [root@localhost redis01]# ls 14 dump.rdb  redis-benchmark  redis-check-aof  redis-check-dump  redis-cli  redis.conf  redis-sentinel  redis-server 15 [root@localhost redis01]# l 16 -bash: l: command not found 17 [root@localhost redis01]# ll 18 total 13896
19 -rw-r--r--. 1 root root      39 Aug 28 01:03 dump.rdb 20 -rwxr-xr-x. 1 root root 4168098 Aug 28 01:03 redis-benchmark 21 -rwxr-xr-x. 1 root root   16471 Aug 28 01:03 redis-check-aof 22 -rwxr-xr-x. 1 root root   37703 Aug 28 01:03 redis-check-dump 23 -rwxr-xr-x. 1 root root 4256876 Aug 28 01:03 redis-cli 24 -rw-r--r--. 1 root root   41404 Aug 28 01:03 redis.conf 25 lrwxrwxrwx. 1 root root      12 Aug 28 01:03 redis-sentinel -> redis-server 26 -rwxr-xr-x. 1 root root 5686857 Aug 28 01:03 redis-server 27 [root@localhost redis01]# rm -rf dump.rdb 28 [root@localhost redis01]#

拷貝完畢之後開始修改端口號。搭建集羣,要開啓集羣模式。將cluster-enabled yes修改成yes。

[root@localhost redis01]# vim redis.conf

1 port 7001
2 cluster-enabled yes

而後將複製的第一個節點redis01複製六個,分別爲redis0二、redis0三、redis0四、redis0五、redis06搭建僞分佈式集羣。依次將redis0二、redis0三、redis0四、redis0五、redis06端口號修改成700二、700三、700四、700五、7006。

而後啓動你的集羣,記得將能夠執行的權限加上哦。

 1 [root@localhost redis-cluster]# chmod 777 redis-cluster-start.sh  2 [root@localhost redis-cluster]# ls  3 redis01  redis02  redis03  redis04  redis05  redis06  redis-cluster-start.sh  4 [root@localhost redis-cluster]# ll  5 total 28
 6 drwxr-xr-x. 2 root root 4096 Aug 28 01:09 redis01  7 drwxr-xr-x. 2 root root 4096 Aug 28 01:12 redis02  8 drwxr-xr-x. 2 root root 4096 Aug 28 01:12 redis03  9 drwxr-xr-x. 2 root root 4096 Aug 28 01:12 redis04 10 drwxr-xr-x. 2 root root 4096 Aug 28 01:13 redis05 11 drwxr-xr-x. 2 root root 4096 Aug 28 01:13 redis06 12 -rwxrwxrwx. 1 root root  259 Aug 28 01:17 redis-cluster-start.sh 13 [root@localhost redis-cluster]# ./redis-cluster-start.sh 14 [root@localhost redis-cluster]# ps aux | grep redis 15 root      2345  0.1  0.1  33936  1748 ?        Ssl  Aug27   0:29 ./redis-server *:6379    
16 root      2842  0.4  0.1  33936  1960 ?        Ssl  01:21   0:00 ./redis-server *:7001 [cluster] 17 root      2844  0.2  0.1  33936  1960 ?        Ssl  01:21   0:00 ./redis-server *:7002 [cluster] 18 root      2846  0.3  0.1  33936  1956 ?        Ssl  01:21   0:00 ./redis-server *:7003 [cluster] 19 root      2852  0.4  0.1  33936  1956 ?        Ssl  01:21   0:00 ./redis-server *:7004 [cluster] 20 root      2856  0.1  0.1  33936  1960 ?        Ssl  01:21   0:00 ./redis-server *:7005 [cluster] 21 root      2858  0.0  0.1  33936  1960 ?        Ssl  01:21   0:00 ./redis-server *:7006 [cluster] 22 root      2866  0.0  0.0   4356   728 pts/0    S+   01:21   0:00 grep redis 23 [root@localhost redis-cluster]#

 二、redis集羣環境搭建。
實例都啓動起來之後就能夠開始搭建集羣了。
ruby腳本語言,運行ruby須要ruby的運行環境,因此先安裝ruby。使用ruby腳本搭建集羣,須要ruby的運行環境。
安裝ruby。
yum install ruby
yum install rubygems
安裝ruby腳本運行使用的包。
gem install redis-3.0.0.gem

 1 [root@localhost package]# ls  2 apache-tomcat-7.0.47.tar.gz  dubbo-admin-2.5.4.war  gnome-terminal.desktop  jdk-7u55-linux-i586.tar.gz  redis-3.0.0.gem  redis-3.0.0.tar.gz  solr-4.10.3.tgz.tgz  zookeeper-3.4.6.tar.gz  3 [root@localhost package]# yum install ruby  4 Loaded plugins: fastestmirror, refresh-packagekit, security  5 Loading mirror speeds from cached hostfile  6  * base: mirror.bit.edu.cn  7  * extras: mirrors.tuna.tsinghua.edu.cn  8  * updates: mirror.bit.edu.cn  9 base                                                                                                              | 3.7 kB     00:00     
 10 extras                                                                                                            | 3.3 kB     00:00     
 11 updates                                                                                                           | 3.4 kB     00:00     
 12 Setting up Install Process  13 Resolving Dependencies  14 --> Running transaction check  15 ---> Package ruby.i686 0:1.8.7.374-5.el6 will be installed  16 --> Processing Dependency: ruby-libs = 1.8.7.374-5.el6 for package: ruby-1.8.7.374-5.el6.i686  17 --> Processing Dependency: libruby.so.1.8 for package: ruby-1.8.7.374-5.el6.i686  18 --> Running transaction check  19 ---> Package ruby-libs.i686 0:1.8.7.374-5.el6 will be installed  20 --> Processing Dependency: libssl.so.10(libssl.so.10) for package: ruby-libs-1.8.7.374-5.el6.i686  21 --> Processing Dependency: libreadline.so.5 for package: ruby-libs-1.8.7.374-5.el6.i686  22 --> Processing Dependency: libcrypto.so.10(libcrypto.so.10) for package: ruby-libs-1.8.7.374-5.el6.i686  23 --> Processing Dependency: libcrypto.so.10(OPENSSL_1.0.1_EC) for package: ruby-libs-1.8.7.374-5.el6.i686  24 --> Running transaction check  25 ---> Package compat-readline5.i686 0:5.2-17.1.el6 will be installed  26 ---> Package openssl.i686 0:1.0.0-27.el6 will be updated  27 ---> Package openssl.i686 0:1.0.1e-58.el6_10 will be an update  28 --> Finished Dependency Resolution  29 
 30 Dependencies Resolved  31 
 32 =========================================================================================================================================
 33  Package Arch Version Repository Size  34 =========================================================================================================================================
 35 Installing:  36  ruby                                 i686                     1.8.7.374-5.el6                         base                        538 k  37 Installing for dependencies:  38  compat-readline5                     i686                     5.2-17.1.el6                            base                        128 k  39  ruby-libs                            i686                     1.8.7.374-5.el6                         base                        1.6 M  40 Updating for dependencies:  41  openssl                              i686                     1.0.1e-58.el6_10                        updates                     1.5 M  42 
 43 Transaction Summary  44 =========================================================================================================================================
 45 Install       3 Package(s)  46 Upgrade       1 Package(s)  47 
 48 Total download size: 3.8 M  49 Is this ok [y/N]: y  50 Downloading Packages:  51 (1/4): compat-readline5-5.2-17.1.el6.i686.rpm                                                                                                                                                            | 128 kB     00:00     
 52 (2/4): openssl-1.0.1e-58.el6_10.i686.rpm                                                                                                                                                                 | 1.5 MB     00:00     
 53 (3/4): ruby-1.8.7.374-5.el6.i686.rpm                                                                                                                                                                     | 538 kB     00:00     
 54 (4/4): ruby-libs-1.8.7.374-5.el6.i686.rpm                                                                                                                                                                | 1.6 MB     00:01     
 55 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 56 Total                                                                                                                                                                                           1.6 MB/s | 3.8 MB     00:02     
 57 Running rpm_check_debug  58 Running Transaction Test  59 Transaction Test Succeeded  60 Running Transaction  61   Updating   : openssl-1.0.1e-58.el6_10.i686                                                                                                                                                                                1/5 
 62   Installing : compat-readline5-5.2-17.1.el6.i686                                                                                                                                                                           2/5 
 63   Installing : ruby-libs-1.8.7.374-5.el6.i686                                                                                                                                                                               3/5 
 64   Installing : ruby-1.8.7.374-5.el6.i686                                                                                                                                                                                    4/5 
 65   Cleanup    : openssl-1.0.0-27.el6.i686                                                                                                                                                                                    5/5 
 66   Verifying  : compat-readline5-5.2-17.1.el6.i686                                                                                                                                                                           1/5 
 67   Verifying  : openssl-1.0.1e-58.el6_10.i686                                                                                                                                                                                2/5 
 68   Verifying  : ruby-1.8.7.374-5.el6.i686                                                                                                                                                                                    3/5 
 69   Verifying  : ruby-libs-1.8.7.374-5.el6.i686                                                                                                                                                                               4/5 
 70   Verifying  : openssl-1.0.0-27.el6.i686                                                                                                                                                                                    5/5 
 71 
 72 Installed:  73   ruby.i686 0:1.8.7.374-5.el6  74 
 75 Dependency Installed:  76   compat-readline5.i686 0:5.2-17.1.el6                                                                             ruby-libs.i686 0:1.8.7.374-5.el6  77 
 78 Dependency Updated:  79   openssl.i686 0:1.0.1e-58.el6_10  80 
 81 Complete!
 82 [root@localhost package]# yum install rubygems  83 Loaded plugins: fastestmirror, refresh-packagekit, security  84 Loading mirror speeds from cached hostfile  85  * base: mirror.bit.edu.cn  86  * extras: mirrors.tuna.tsinghua.edu.cn  87  * updates: mirror.bit.edu.cn  88 Setting up Install Process  89 Resolving Dependencies  90 --> Running transaction check  91 ---> Package rubygems.noarch 0:1.3.7-5.el6 will be installed  92 --> Processing Dependency: ruby-rdoc for package: rubygems-1.3.7-5.el6.noarch  93 --> Running transaction check  94 ---> Package ruby-rdoc.i686 0:1.8.7.374-5.el6 will be installed  95 --> Processing Dependency: ruby-irb = 1.8.7.374-5.el6 for package: ruby-rdoc-1.8.7.374-5.el6.i686  96 --> Running transaction check  97 ---> Package ruby-irb.i686 0:1.8.7.374-5.el6 will be installed  98 --> Finished Dependency Resolution  99 
100 Dependencies Resolved 101 
102 =========================================================================================================================================
103  Package Arch Version Repository Size 104 =========================================================================================================================================
105 Installing: 106  rubygems                         noarch                        1.3.7-5.el6                            base                        207 k 107 Installing for dependencies: 108  ruby-irb                         i686                          1.8.7.374-5.el6                        base                        318 k 109  ruby-rdoc                        i686                          1.8.7.374-5.el6                        base                        381 k 110 
111 Transaction Summary 112 =========================================================================================================================================
113 Install       3 Package(s) 114 
115 Total download size: 905 k 116 Installed size: 3.0 M 117 Is this ok [y/N]: y 118 Downloading Packages: 119 (1/3): ruby-irb-1.8.7.374-5.el6.i686.rpm                                                                          | 318 kB     00:00     
120 (2/3): ruby-rdoc-1.8.7.374-5.el6.i686.rpm                                                                         | 381 kB     00:01     
121 (3/3): rubygems-1.3.7-5.el6.noarch.rpm                                                                            | 207 kB     00:00     
122 -----------------------------------------------------------------------------------------------------------------------------------------
123 Total                                                                                                    359 kB/s | 905 kB     00:02     
124 Running rpm_check_debug 125 Running Transaction Test 126 Transaction Test Succeeded 127 Running Transaction 128   Installing : ruby-irb-1.8.7.374-5.el6.i686                                                                                         1/3 
129   Installing : ruby-rdoc-1.8.7.374-5.el6.i686                                                                                                                                                                               2/3 
130   Installing : rubygems-1.3.7-5.el6.noarch                                                                                                                                                                                  3/3 
131   Verifying  : ruby-rdoc-1.8.7.374-5.el6.i686                                                                                                                                                                               1/3 
132   Verifying  : rubygems-1.3.7-5.el6.noarch                                                                                                                                                                                  2/3 
133   Verifying  : ruby-irb-1.8.7.374-5.el6.i686                                                                                                                                                                                3/3 
134 
135 Installed: 136   rubygems.noarch 0:1.3.7-5.el6 137 
138 Dependency Installed: 139   ruby-irb.i686 0:1.8.7.374-5.el6                                                                                ruby-rdoc.i686 0:1.8.7.374-5.el6 140 
141 Complete!
142 [root@localhost package]# gem install redis-3.0.0.gem 143 Successfully installed redis-3.0.0
144 1 gem installed 145 Installing ri documentation for redis-3.0.0... 146 Installing RDoc documentation for redis-3.0.0... 147 [root@localhost package]#

 ruby安裝成功之後,就開始執行ruby的腳本文件。

 1 [root@localhost package]# cd /home/hadoop/soft/redis-3.0.0/
 2 [root@localhost redis-3.0.0]# ls  3 00-RELEASENOTES  BUGS  CONTRIBUTING  COPYING  deps  INSTALL  Makefile  MANIFESTO  README  redis.conf  runtest  runtest-cluster  runtest-sentinel sentinel.conf src tests utils  4 [root@localhost redis-3.0.0]# cd src/
 5 [root@localhost src]# ls  6 adlist.c     anet.c       bitops.o   crc16.o  dict.o         intset.o   Makefile         notify.o  rand.o             redis-check-aof.c   redis-sentinel rio.o sha1.c sparkline.h t_set.o ziplist.c  7 adlist.h     anet.h       blocked.c  crc64.c  endianconv.c   latency.c  Makefile.dep     object.c  rdb.c              redis-check-aof.o   redis-server scripting.c sha1.h sparkline.o t_string.c ziplist.h  8 adlist.o     anet.o       blocked.o  crc64.h  endianconv.h   latency.h  memtest.c        object.o  rdb.h              redis-check-dump    redis-trib.rb scripting.o sha1.o syncio.c t_string.o ziplist.o  9 ae.c         aof.c        cluster.c  crc64.o  endianconv.o   latency.o  memtest.o        pqsort.c  rdb.o              redis-check-dump.c release.c sds.c slowlog.c syncio.o t_zset.c zipmap.c 10 ae_epoll.c   aof.o        cluster.h  db.c     fmacros.h      lzf_c.c    mkreleasehdr.sh  pqsort.h  redisassert.h      redis-check-dump.o release.h sds.h slowlog.h testhelp.h t_zset.o zipmap.h 11 ae_evport.c  asciilogo.h  cluster.o  db.o     help.h         lzf_c.o    multi.c          pqsort.o  redis-benchmark    redis-cli release.o sds.o slowlog.o t_hash.c util.c zipmap.o 12 ae.h         bio.c        config.c   debug.c  hyperloglog.c  lzf_d.c    multi.o          pubsub.c  redis-benchmark.c  redis-cli.c replication.c sentinel.c solarisfixes.h t_hash.o util.h zmalloc.c 13 ae_kqueue.c  bio.h        config.h   debug.o  hyperloglog.o  lzf_d.o    networking.c     pubsub.o  redis-benchmark.o  redis-cli.o replication.o sentinel.o sort.c t_list.c util.o zmalloc.h 14 ae.o bio.o config.o dict.c intset.c lzf.h networking.o rand.c redis.c redis.h rio.c setproctitle.c sort.o t_list.o valgrind.sup zmalloc.o 15 ae_select.c  bitops.c     crc16.c    dict.h   intset.h       lzfP.h     notify.c         rand.h    redis-check-aof redis.o rio.h setproctitle.o sparkline.c t_set.c version.h 16 [root@localhost src]# cp *.rb /usr/local/redis-cluster/
17 [root@localhost src]# cd /usr/local/redis-cluster/
18 [root@localhost redis-cluster]# ls 19 redis01  redis02  redis03  redis04  redis05  redis06  redis-cluster-shutdown.sh  redis-cluster-start.sh  redis-trib.rb 20 [root@localhost redis-cluster]#

redis集羣搭建詳細步驟以下所示:

第一步,建立6個redis實例,每一個實例運行在不一樣的端口。須要修改redis.conf配置文件。配置文件中還須要把cluster-enabled yes前的註釋去掉。
第二步,啓動每一個redis實例。
第三步,使用ruby腳本搭建集羣。執行下面的命令。
./redis-trib.rb create --replicas 1 192.168.110.140:7001 192.168.110.140:7002 192.168.110.140:7003 192.168.110.140:7004 192.168.110.140:7005 192.168.110.140:7006
建立關閉集羣的腳本。vim redis-cluster-shutdown.sh

 1 [root@localhost redis-cluster]# cat redis-cluster-shutdown.sh  2 cd redis01  3 ./redis-cli -p 7001 shutdown  4 cd ..  5 cd redis02  6 ./redis-cli -p 7002 shutdown  7 cd ..  8 cd redis03  9 ./redis-cli -p 7003 shutdown 10 cd .. 11 cd redis04 12 ./redis-cli -p 7004 shutdown 13 cd .. 14 cd redis05 15 ./redis-cli -p 7005 shutdown 16 cd .. 17 cd redis06 18 ./redis-cli -p 7006 shutdown 19 cd ..

 執行./redis-trib.rb create --replicas 1 192.168.110.140:7001 192.168.110.140:7002 192.168.110.140:7003 192.168.110.140:7004 192.168.110.140:7005 192.168.110.140:7006以下所示:

注意:記得啓動你的6個redis實例哦。

 1 [root@localhost redis-cluster]# ./redis-trib.rb create --replicas 1 192.168.110.140:7001 192.168.110.140:7002 192.168.110.140:7003 192.168.110.140:7004 192.168.110.140:7005 192.168.110.140:7006
 2 >>> Creating cluster  3 Connecting to node 192.168.110.140:7001: OK  4 Connecting to node 192.168.110.140:7002: OK  5 Connecting to node 192.168.110.140:7003: OK  6 Connecting to node 192.168.110.140:7004: OK  7 Connecting to node 192.168.110.140:7005: OK  8 Connecting to node 192.168.110.140:7006: OK  9 >>> Performing hash slots allocation on 6 nodes... 10 Using 3 masters: 11 192.168.110.140:7001
12 192.168.110.140:7002
13 192.168.110.140:7003
14 Adding replica 192.168.110.140:7004 to 192.168.110.140:7001
15 Adding replica 192.168.110.140:7005 to 192.168.110.140:7002
16 Adding replica 192.168.110.140:7006 to 192.168.110.140:7003
17 M: 68fe9475169a3542c126d9b19a7e60452e4eb009 192.168.110.140:7001
18    slots:0-5460 (5461 slots) master 19 M: 47b64edee869fa173574267e655515ac95fa8b01 192.168.110.140:7002
20    slots:5461-10922 (5462 slots) master 21 M: ff3813dec92ba0a9f333362e5fdc2c33a7d3c45e 192.168.110.140:7003
22    slots:10923-16383 (5461 slots) master 23 S: bb3946e5d3473fe20364b3f4bd5297e96ce0243f 192.168.110.140:7004
24  replicates 68fe9475169a3542c126d9b19a7e60452e4eb009 25 S: db2d6fd06b5a40723fe739eacc7e882fdf268f2c 192.168.110.140:7005
26  replicates 47b64edee869fa173574267e655515ac95fa8b01 27 S: dcfa84e8a9c53e364b7caa519b7d2bff40cdb1db 192.168.110.140:7006
28  replicates ff3813dec92ba0a9f333362e5fdc2c33a7d3c45e 29 Can I set the above configuration? (type 'yes' to accept): yes 30 >>> Nodes configuration updated 31 >>> Assign a different config epoch to each node 32 >>> Sending CLUSTER MEET messages to join the cluster 33 Waiting for the cluster to join..... 34 >>> Performing Cluster Check (using node 192.168.110.140:7001) 35 M: 68fe9475169a3542c126d9b19a7e60452e4eb009 192.168.110.140:7001
36    slots:0-5460 (5461 slots) master 37 M: 47b64edee869fa173574267e655515ac95fa8b01 192.168.110.140:7002
38    slots:5461-10922 (5462 slots) master 39 M: ff3813dec92ba0a9f333362e5fdc2c33a7d3c45e 192.168.110.140:7003
40    slots:10923-16383 (5461 slots) master 41 M: bb3946e5d3473fe20364b3f4bd5297e96ce0243f 192.168.110.140:7004
42    slots: (0 slots) master 43  replicates 68fe9475169a3542c126d9b19a7e60452e4eb009 44 M: db2d6fd06b5a40723fe739eacc7e882fdf268f2c 192.168.110.140:7005
45    slots: (0 slots) master 46  replicates 47b64edee869fa173574267e655515ac95fa8b01 47 M: dcfa84e8a9c53e364b7caa519b7d2bff40cdb1db 192.168.110.140:7006
48    slots: (0 slots) master 49  replicates ff3813dec92ba0a9f333362e5fdc2c33a7d3c45e 50 [OK] All nodes agree about slots configuration. 51 >>> Check for open slots... 52 >>> Check slots coverage... 53 [OK] All 16384 slots covered. 54 [root@localhost redis-cluster]#

集羣的啓動和中止,以及操做以下所示:

redis集羣的配置以下所示:

 如上配置出現了一點問題。就是服務器操做是沒有問題的,可是遠程代碼,連不上服務器,調整了一下bind的ip順序解決了問題。bind 192.168.110.140 127.0.0.1

操做以下所示:

 1 [root@localhost ~]# cd /usr/local/
 2 [root@localhost local]# ls  3 bin  etc  games  include  lib  libexec  redis  redis-cluster sbin share src  4 [root@localhost local]# cd redis-cluster/
 5 [root@localhost redis-cluster]# ls  6 redis01  redis02  redis03  redis04  redis05  redis06  redis-cluster-shutdown.sh  redis-cluster-start.sh  redis-trib.rb  7 [root@localhost redis-cluster]# ./redis-cluster-start.sh  8 [root@localhost redis-cluster]# ps -aux | grep redis  9 Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ 10 root      2347  0.2  0.2  33936  2140 ?        Ssl  05:07   0:00 ./redis-server 127.0.0.1:7001 [cluster] 11 root      2351  0.1  0.2  33936  2156 ?        Ssl  05:07   0:00 ./redis-server 127.0.0.1:7002 [cluster] 12 root      2355  0.3  0.2  33936  2156 ?        Ssl  05:07   0:00 ./redis-server 127.0.0.1:7003 [cluster] 13 root      2359  0.1  0.2  33936  2156 ?        Ssl  05:07   0:00 ./redis-server 127.0.0.1:7004 [cluster] 14 root      2363  0.2  0.2  33936  2148 ?        Ssl  05:07   0:00 ./redis-server 127.0.0.1:7005 [cluster] 15 root      2367  0.2  0.2  33936  2144 ?        Ssl  05:07   0:00 ./redis-server 127.0.0.1:7006 [cluster] 16 root      2375  0.0  0.0   4356   728 pts/0    S+   05:07   0:00 grep redis 17 [root@localhost redis-cluster]# redis01/redis-cli -p 7006 -c 18 127.0.0.1:7006> set key1 123
19 -> Redirected to slot [9189] located at 127.0.0.1:7002
20 OK 21 127.0.0.1:7002> set key2 123
22 -> Redirected to slot [4998] located at 127.0.0.1:7001
23 OK 24 127.0.0.1:7001> set key3 123
25 OK 26 127.0.0.1:7001> set key4 123
27 -> Redirected to slot [13120] located at 127.0.0.1:7003
28 OK 29 127.0.0.1:7003> exit 30 [root@localhost redis-cluster]# ./redis-cluster-shutdown.sh 31 [root@localhost redis-cluster]# ps -aux | grep redis 32 Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ 33 root      2390  0.0  0.0   4356   732 pts/0    S+   05:09   0:00 grep redis 34 [root@localhost redis-cluster]#

 查看集羣的狀態和信息:

 1 [root@localhost redis-cluster]# ./redis-cluster-start.sh  2 [root@localhost redis-cluster]# ps -aux | grep redis  3 Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ  4 root      2407  0.5  0.2  33936  2128 ?        Ssl  05:11   0:00 ./redis-server 127.0.0.1:7001 [cluster]  5 root      2409  0.0  0.2  33936  2132 ?        Ssl  05:11   0:00 ./redis-server 127.0.0.1:7002 [cluster]  6 root      2411  0.0  0.2  33936  2132 ?        Ssl  05:11   0:00 ./redis-server 127.0.0.1:7003 [cluster]  7 root      2417  0.0  0.2  33936  2116 ?        Ssl  05:11   0:00 ./redis-server 127.0.0.1:7004 [cluster]  8 root      2423  0.0  0.2  33936  2104 ?        Ssl  05:11   0:00 ./redis-server 127.0.0.1:7005 [cluster]  9 root      2427  0.0  0.2  33936  2108 ?        Ssl  05:11   0:00 ./redis-server 127.0.0.1:7006 [cluster] 10 root      2434  0.0  0.0   4356   732 pts/0    S+   05:11   0:00 grep redis 11 [root@localhost redis-cluster]# ls 12 redis01  redis02  redis03  redis04  redis05  redis06  redis-cluster-shutdown.sh  redis-cluster-start.sh  redis-trib.rb 13 [root@localhost redis-cluster]# redis01/redis-cli -p 7006 -c 14 127.0.0.1:7006> cluster info 15 cluster_state:ok 16 cluster_slots_assigned:16384
17 cluster_slots_ok:16384
18 cluster_slots_pfail:0
19 cluster_slots_fail:0
20 cluster_known_nodes:6
21 cluster_size:3
22 cluster_current_epoch:6
23 cluster_my_epoch:3
24 cluster_stats_messages_sent:63
25 cluster_stats_messages_received:63
26 127.0.0.1:7006> cluster nodes 27 68fe9475169a3542c126d9b19a7e60452e4eb009 127.0.0.1:7001 master - 0 1567080758341 1 connected 0-5460
28 47b64edee869fa173574267e655515ac95fa8b01 127.0.0.1:7002 master - 0 1567080757332 2 connected 5461-10922
29 ff3813dec92ba0a9f333362e5fdc2c33a7d3c45e 127.0.0.1:7003 master - 0 1567080760505 3 connected 10923-16383
30 dcfa84e8a9c53e364b7caa519b7d2bff40cdb1db 192.168.110.140:7006 myself,slave ff3813dec92ba0a9f333362e5fdc2c33a7d3c45e 0 0 6 connected 31 db2d6fd06b5a40723fe739eacc7e882fdf268f2c 127.0.0.1:7005 slave 47b64edee869fa173574267e655515ac95fa8b01 0 1567080761579 5 connected 32 bb3946e5d3473fe20364b3f4bd5297e96ce0243f 127.0.0.1:7004 slave 68fe9475169a3542c126d9b19a7e60452e4eb009 0 1567080759348 4 connected 33 127.0.0.1:7006>

注意1:redis做爲緩存的時候,查詢操做,如是方案,先去redis緩存中查詢數據,若是redis緩存中存在就直接返回。不然去數據庫中查詢數據,若是有數據,接下來執行將數據放入到緩存中,切記redis做爲緩存保存的都是字符串類型的,若是是集合類型,要記得轉換爲json串進行保存。還有就是切記,將執行操做redis的代碼進行try/catch,捕獲異常,避免干擾正常程序的執行哦。

注意2:redis做爲緩存的時候,對數據庫進行增刪改操做的時候,方案一,暴力方案,能夠將redis數據庫裏面的數據進行清空,而後再次查詢的時候會將數據從新保存到redis中的哦,實現redis緩存的效果。方案二,精細化方案,刪除數據庫的時候,一點點刪除redis裏面的數據。假如redis保存的是集合,若是刪除數據庫中數據的話,對redis的實際操做是修改操做,將保存到redis中的json字符串找到(查詢操做),而後修改redis中指定的json(修改),而後再放入到redis中,完成redis和數據庫的同步。
即a、刪除數據中的數據。b、判斷redis中是否有緩存數據。c、若是有緩存數據,修改緩存數據便可。

待續......

相關文章
相關標籤/搜索