妖怪那里逃 發表於 2023-2-20 17:39:00

银河麒麟V10系统安装Redis

<h1>一、准备工作</h1>
<p>安装环境:银河麒麟KylinV10</p>
<p>1、Redis是基于C语言编写的,因此首先需要安装Redis所需要的gcc依赖:</p>
<p># yum install cpp</p>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202302/1204515-20230220172910392-40347203.png"></p>
<p>输入:y</p>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202302/1204515-20230220173141222-2131906628.png"></p>
<p>&nbsp;2、# yum install binutils</p>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202302/1204515-20230220173316715-1616519669.png"></p>
<p>&nbsp;3、# yum install glibc</p>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202302/1204515-20230220173346013-1411916858.png"></p>
<p>4、#&nbsp;yum install glibc-kernheaders</p>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202302/1204515-20230220173434940-1961132587.png"></p>
<p>输入:y回车</p>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202302/1204515-20230220173513024-946961905.png"></p>
<p>5、#&nbsp;&nbsp;yum install glibc-common</p>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202302/1204515-20230220173553333-2069571375.png"></p>
<p>&nbsp;6、#&nbsp;&nbsp;yum install glibc-devel</p>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202302/1204515-20230220173642614-1714510835.png"></p>
<p>7、#&nbsp;&nbsp;yum install gcc</p>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202302/1204515-20230220173749599-1393174628.png"></p>
<p>#&nbsp; gcc -v</p>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202302/1204515-20230221092531138-1889620812.png"></p>
<p>&nbsp;8、#&nbsp;yum install make</p>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202302/1204515-20230220173811568-1296009082.png"></p>
<p>9、#&nbsp;yum install tcl</p>
<p>&nbsp;<img src="https://img2023.cnblogs.com/blog/1204515/202302/1204515-20230220173830751-437939323.png"></p>
<h1>二、下载安装Redis</h1>
<p>1、下载文件:Redis&nbsp;&nbsp;或者&nbsp; &nbsp;</p>
<p>#&nbsp;&nbsp;wget http://download.redis.io/releases/redis-5.0.5.tar.gz</p>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202302/1204515-20230221092010008-708089206.png"></p>
<p>2、解压并移动到指定目录</p>
<div class="cnblogs_Highlighter">
<pre class="brush:sql;gutter:true;"># cd /usr/local
# mkdir redis   # 创建目录
</pre>
</div>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202302/1204515-20230221093218718-771804343.png"></p>
<div class="cnblogs_code">
<pre># tar -zxvf redis-<span style="color: rgba(128, 0, 128, 1)">5.0</span>.<span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">.tar.gz#解压
# mv redis-<span style="color: rgba(128, 0, 128, 1)">5.0</span>.<span style="color: rgba(128, 0, 128, 1)">5</span> /usr/local/<span style="color: rgba(0, 0, 0, 1)">redis   #移动到指定目录下
# cd /usr/local/redis   </pre>
</div>
<p class="brush:sql;gutter:true;"><em><img src="https://img2023.cnblogs.com/blog/1204515/202302/1204515-20230221093736389-537114163.png"></em></p>
<p>3、安装编译工具:# yum install gcc gcc-c++ -y</p>
<p>如果先执行make,再安装编译工具会导致编译错误,建议删除并重新解压编译</p>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202302/1204515-20230221093917027-45692602.png"></p>
<p>4、编译:make&nbsp; &amp;&amp; make install</p>
<div class="cnblogs_code"><img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif">日志详情<img id="code_img_opened_b4eab7d6-3f19-4adf-a095-7659861eb899" class="code_img_opened lazyload" style="display: none" data-src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif">
<div id="cnblogs_code_open_b4eab7d6-3f19-4adf-a095-7659861eb899" class="cnblogs_code_hide">
<pre># <span style="color: rgba(0, 0, 255, 1)">make</span><span style="color: rgba(0, 0, 0, 1)">
cd src </span>&amp;&amp; <span style="color: rgba(0, 0, 255, 1)">make</span><span style="color: rgba(0, 0, 0, 1)"> all
</span><span style="color: rgba(0, 0, 255, 1)">make</span>[<span style="color: rgba(128, 0, 128, 1)">1</span>]: 进入目录“/usr/local/redis/redis-<span style="color: rgba(128, 0, 128, 1)">5.0</span>.<span style="color: rgba(128, 0, 128, 1)">5</span>/<span style="color: rgba(0, 0, 0, 1)">src”
    CC Makefile.dep
rm </span>-rf redis-server redis-sentinel redis-cli redis-benchmark redis-check-rdb redis-check-aof *.o *.gcda *.gcno *.gcov redis.info lcov-html Makefile.dep dict-<span style="color: rgba(0, 0, 0, 1)">benchmark
(cd ..</span>/deps &amp;&amp; <span style="color: rgba(0, 0, 255, 1)">make</span><span style="color: rgba(0, 0, 0, 1)"> distclean)
</span><span style="color: rgba(0, 0, 255, 1)">make</span>[<span style="color: rgba(128, 0, 128, 1)">2</span>]: 进入目录“/usr/local/redis/redis-<span style="color: rgba(128, 0, 128, 1)">5.0</span>.<span style="color: rgba(128, 0, 128, 1)">5</span>/<span style="color: rgba(0, 0, 0, 1)">deps”
(cd hiredis </span>&amp;&amp; <span style="color: rgba(0, 0, 255, 1)">make</span> clean) &gt; /dev/<span style="color: rgba(0, 0, 255, 1)">null</span> || <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
(cd linenoise </span>&amp;&amp; <span style="color: rgba(0, 0, 255, 1)">make</span> clean) &gt; /dev/<span style="color: rgba(0, 0, 255, 1)">null</span> || <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
(cd lua </span>&amp;&amp; <span style="color: rgba(0, 0, 255, 1)">make</span> clean) &gt; /dev/<span style="color: rgba(0, 0, 255, 1)">null</span> || <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
(cd jemalloc </span>&amp;&amp; [ -f Makefile ] &amp;&amp; <span style="color: rgba(0, 0, 255, 1)">make</span> distclean) &gt; /dev/<span style="color: rgba(0, 0, 255, 1)">null</span> || <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
(rm </span>-f .<span style="color: rgba(0, 0, 255, 1)">make</span>-*<span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 0, 255, 1)">make</span>[<span style="color: rgba(128, 0, 128, 1)">2</span>]: 离开目录“/usr/local/redis/redis-<span style="color: rgba(128, 0, 128, 1)">5.0</span>.<span style="color: rgba(128, 0, 128, 1)">5</span>/<span style="color: rgba(0, 0, 0, 1)">deps”
(rm </span>-f .<span style="color: rgba(0, 0, 255, 1)">make</span>-*<span style="color: rgba(0, 0, 0, 1)">)
echo STD</span>=-std=c99 -pedantic -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span> &gt;&gt; .<span style="color: rgba(0, 0, 255, 1)">make</span>-<span style="color: rgba(0, 0, 0, 1)">settings
echo WARN</span>=-Wall -W -Wno-missing-field-initializers &gt;&gt; .<span style="color: rgba(0, 0, 255, 1)">make</span>-<span style="color: rgba(0, 0, 0, 1)">settings
echo OPT</span>=-O2 &gt;&gt; .<span style="color: rgba(0, 0, 255, 1)">make</span>-<span style="color: rgba(0, 0, 0, 1)">settings
echo MALLOC</span>=jemalloc &gt;&gt; .<span style="color: rgba(0, 0, 255, 1)">make</span>-<span style="color: rgba(0, 0, 0, 1)">settings
echo CFLAGS</span>= &gt;&gt; .<span style="color: rgba(0, 0, 255, 1)">make</span>-<span style="color: rgba(0, 0, 0, 1)">settings
echo LDFLAGS</span>= &gt;&gt; .<span style="color: rgba(0, 0, 255, 1)">make</span>-<span style="color: rgba(0, 0, 0, 1)">settings
echo REDIS_CFLAGS</span>= &gt;&gt; .<span style="color: rgba(0, 0, 255, 1)">make</span>-<span style="color: rgba(0, 0, 0, 1)">settings
echo REDIS_LDFLAGS</span>= &gt;&gt; .<span style="color: rgba(0, 0, 255, 1)">make</span>-<span style="color: rgba(0, 0, 0, 1)">settings
echo PREV_FINAL_CFLAGS</span>=-std=c99 -pedantic -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span> -Wall -W -Wno-missing-field-initializers -O2 -g -ggdb   -I../deps/hiredis -I../deps/linenoise -I../deps/lua/src -DUSE_JEMALLOC -I../deps/jemalloc/include &gt;&gt; .<span style="color: rgba(0, 0, 255, 1)">make</span>-<span style="color: rgba(0, 0, 0, 1)">settings
echo PREV_FINAL_LDFLAGS</span>=-g -ggdb -rdynamic &gt;&gt; .<span style="color: rgba(0, 0, 255, 1)">make</span>-<span style="color: rgba(0, 0, 0, 1)">settings
(cd ..</span>/deps &amp;&amp; <span style="color: rgba(0, 0, 255, 1)">make</span><span style="color: rgba(0, 0, 0, 1)"> hiredis linenoise lua jemalloc)
</span><span style="color: rgba(0, 0, 255, 1)">make</span>[<span style="color: rgba(128, 0, 128, 1)">2</span>]: 进入目录“/usr/local/redis/redis-<span style="color: rgba(128, 0, 128, 1)">5.0</span>.<span style="color: rgba(128, 0, 128, 1)">5</span>/<span style="color: rgba(0, 0, 0, 1)">deps”
(cd hiredis </span>&amp;&amp; <span style="color: rgba(0, 0, 255, 1)">make</span> clean) &gt; /dev/<span style="color: rgba(0, 0, 255, 1)">null</span> || <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
(cd linenoise </span>&amp;&amp; <span style="color: rgba(0, 0, 255, 1)">make</span> clean) &gt; /dev/<span style="color: rgba(0, 0, 255, 1)">null</span> || <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
(cd lua </span>&amp;&amp; <span style="color: rgba(0, 0, 255, 1)">make</span> clean) &gt; /dev/<span style="color: rgba(0, 0, 255, 1)">null</span> || <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
(cd jemalloc </span>&amp;&amp; [ -f Makefile ] &amp;&amp; <span style="color: rgba(0, 0, 255, 1)">make</span> distclean) &gt; /dev/<span style="color: rgba(0, 0, 255, 1)">null</span> || <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
(rm </span>-f .<span style="color: rgba(0, 0, 255, 1)">make</span>-*<span style="color: rgba(0, 0, 0, 1)">)
(echo </span><span style="color: rgba(128, 0, 0, 1)">""</span> &gt; .<span style="color: rgba(0, 0, 255, 1)">make</span>-<span style="color: rgba(0, 0, 0, 1)">cflags)
(echo </span><span style="color: rgba(128, 0, 0, 1)">""</span> &gt; .<span style="color: rgba(0, 0, 255, 1)">make</span>-<span style="color: rgba(0, 0, 0, 1)">ldflags)
MAKE hiredis
cd hiredis </span>&amp;&amp; <span style="color: rgba(0, 0, 255, 1)">make</span><span style="color: rgba(0, 0, 0, 1)"> static
</span><span style="color: rgba(0, 0, 255, 1)">make</span>[<span style="color: rgba(128, 0, 128, 1)">3</span>]: 进入目录“/usr/local/redis/redis-<span style="color: rgba(128, 0, 128, 1)">5.0</span>.<span style="color: rgba(128, 0, 128, 1)">5</span>/deps/<span style="color: rgba(0, 0, 0, 1)">hiredis”
cc </span>-std=c99 -pedantic -c -O3 -fPIC-Wall -W -Wstrict-prototypes -Wwrite-strings -g -<span style="color: rgba(0, 0, 0, 1)">ggdbnet.c
cc </span>-std=c99 -pedantic -c -O3 -fPIC-Wall -W -Wstrict-prototypes -Wwrite-strings -g -<span style="color: rgba(0, 0, 0, 1)">ggdbhiredis.c
cc </span>-std=c99 -pedantic -c -O3 -fPIC-Wall -W -Wstrict-prototypes -Wwrite-strings -g -<span style="color: rgba(0, 0, 0, 1)">ggdbsds.c
cc </span>-std=c99 -pedantic -c -O3 -fPIC-Wall -W -Wstrict-prototypes -Wwrite-strings -g -<span style="color: rgba(0, 0, 0, 1)">ggdbasync.c
cc </span>-std=c99 -pedantic -c -O3 -fPIC-Wall -W -Wstrict-prototypes -Wwrite-strings -g -<span style="color: rgba(0, 0, 0, 1)">ggdbread.c
ar rcs libhiredis.a net.o hiredis.o sds.o async.o read.o
</span><span style="color: rgba(0, 0, 255, 1)">make</span>[<span style="color: rgba(128, 0, 128, 1)">3</span>]: 离开目录“/usr/local/redis/redis-<span style="color: rgba(128, 0, 128, 1)">5.0</span>.<span style="color: rgba(128, 0, 128, 1)">5</span>/deps/<span style="color: rgba(0, 0, 0, 1)">hiredis”
MAKE linenoise
cd linenoise </span>&amp;&amp; <span style="color: rgba(0, 0, 255, 1)">make</span>
<span style="color: rgba(0, 0, 255, 1)">make</span>[<span style="color: rgba(128, 0, 128, 1)">3</span>]: 进入目录“/usr/local/redis/redis-<span style="color: rgba(128, 0, 128, 1)">5.0</span>.<span style="color: rgba(128, 0, 128, 1)">5</span>/deps/<span style="color: rgba(0, 0, 0, 1)">linenoise”
cc</span>-Wall -Os -g-<span style="color: rgba(0, 0, 0, 1)">c linenoise.c
</span><span style="color: rgba(0, 0, 255, 1)">make</span>[<span style="color: rgba(128, 0, 128, 1)">3</span>]: 离开目录“/usr/local/redis/redis-<span style="color: rgba(128, 0, 128, 1)">5.0</span>.<span style="color: rgba(128, 0, 128, 1)">5</span>/deps/<span style="color: rgba(0, 0, 0, 1)">linenoise”
MAKE lua
cd lua</span>/src &amp;&amp; <span style="color: rgba(0, 0, 255, 1)">make</span> all CFLAGS=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' </span><span style="color: rgba(128, 0, 0, 1)">"</span> MYLDFLAGS=<span style="color: rgba(128, 0, 0, 1)">""</span> AR=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">ar rcu</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 0, 255, 1)">make</span>[<span style="color: rgba(128, 0, 128, 1)">3</span>]: 进入目录“/usr/local/redis/redis-<span style="color: rgba(128, 0, 128, 1)">5.0</span>.<span style="color: rgba(128, 0, 128, 1)">5</span>/deps/lua/<span style="color: rgba(0, 0, 0, 1)">src”
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o lapi.o lapi.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o lcode.o lcode.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o ldebug.o ldebug.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o ldo.o ldo.c
ldo.c: 在函数‘f_parser’中:
ldo.c:</span><span style="color: rgba(128, 0, 128, 1)">496</span>:<span style="color: rgba(128, 0, 128, 1)">7</span>: 警告:未使用的变量‘c’ [-Wunused-<span style="color: rgba(0, 0, 0, 1)">variable]
   </span><span style="color: rgba(0, 0, 255, 1)">int</span> c = luaZ_lookahead(p-&gt;<span style="color: rgba(0, 0, 0, 1)">z);
       </span>^<span style="color: rgba(0, 0, 0, 1)">
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o ldump.o ldump.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o lfunc.o lfunc.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o lgc.o lgc.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o llex.o llex.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o lmem.o lmem.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o lobject.o lobject.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o lopcodes.o lopcodes.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o lparser.o lparser.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o lstate.o lstate.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o lstring.o lstring.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o ltable.o ltable.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o ltm.o ltm.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o lundump.o lundump.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o lvm.o lvm.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o lzio.o lzio.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o strbuf.o strbuf.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o fpconv.o fpconv.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o lauxlib.o lauxlib.c
lauxlib.c: 在函数‘luaL_loadfile’中:
lauxlib.c:</span><span style="color: rgba(128, 0, 128, 1)">577</span>:<span style="color: rgba(128, 0, 128, 1)">4</span>: 警告:this ‘while’ clause does not guard... [-Wmisleading-<span style="color: rgba(0, 0, 0, 1)">indentation]
    while ((c </span>= getc(lf.f)) != EOF &amp;&amp; c != LUA_SIGNATURE[<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">]) ;
    </span>^~~~~<span style="color: rgba(0, 0, 0, 1)">
lauxlib.c:</span><span style="color: rgba(128, 0, 128, 1)">578</span>:<span style="color: rgba(128, 0, 128, 1)">5</span>: 附注:...this statement, but the latter is misleadingly indented as <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> it were guarded by the ‘while’
   lf.extraline </span>= <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">;
   </span>^~<span style="color: rgba(0, 0, 0, 1)">
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o lbaselib.o lbaselib.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o ldblib.o ldblib.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o liolib.o liolib.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o lmathlib.o lmathlib.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o loslib.o loslib.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o ltablib.o ltablib.c
ltablib.c: 在函数‘addfield’中:
ltablib.c:</span><span style="color: rgba(128, 0, 128, 1)">137</span>:<span style="color: rgba(128, 0, 128, 1)">3</span>: 警告:this ‘<span style="color: rgba(0, 0, 255, 1)">if</span>’ clause does not guard... [-Wmisleading-<span style="color: rgba(0, 0, 0, 1)">indentation]
   </span><span style="color: rgba(0, 0, 255, 1)">if</span> (!lua_isstring(L, -<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">))
   </span>^~<span style="color: rgba(0, 0, 0, 1)">
ltablib.c:</span><span style="color: rgba(128, 0, 128, 1)">140</span>:<span style="color: rgba(128, 0, 128, 1)">5</span>: 附注:...this statement, but the latter is misleadingly indented as <span style="color: rgba(0, 0, 255, 1)">if</span> it were guarded by the ‘<span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">’
   luaL_addvalue(b);
   </span>^~~~~~~~~~~~~<span style="color: rgba(0, 0, 0, 1)">
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o lstrlib.o lstrlib.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o loadlib.o loadlib.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o linit.o linit.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o lua_cjson.o lua_cjson.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o lua_struct.o lua_struct.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o lua_cmsgpack.o lua_cmsgpack.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">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 </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o lua.o lua.c
cc </span>-o lualua.o liblua.a -<span style="color: rgba(0, 0, 0, 1)">lm
</span>/usr/bin/ld: liblua.a(loslib.o): in function `os_tmpname<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">:</span>
loslib.c:(.text+<span style="color: rgba(128, 0, 128, 1)">0x27c</span>): 警告:the use of `tmpnam<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)"> is dangerous, better use `mkstemp</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -<span style="color: rgba(0, 0, 0, 1)">o luac.o luac.c
cc </span>-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC=<span style="color: rgba(128, 0, 0, 1)">''</span>    -c -o <span style="color: rgba(0, 0, 255, 1)">print</span>.o <span style="color: rgba(0, 0, 255, 1)">print</span><span style="color: rgba(0, 0, 0, 1)">.c
cc </span>-o luacluac.o <span style="color: rgba(0, 0, 255, 1)">print</span>.o liblua.a -<span style="color: rgba(0, 0, 0, 1)">lm
</span><span style="color: rgba(0, 0, 255, 1)">make</span>[<span style="color: rgba(128, 0, 128, 1)">3</span>]: 离开目录“/usr/local/redis/redis-<span style="color: rgba(128, 0, 128, 1)">5.0</span>.<span style="color: rgba(128, 0, 128, 1)">5</span>/deps/lua/<span style="color: rgba(0, 0, 0, 1)">src”
MAKE jemalloc
cd jemalloc </span>&amp;&amp; ./configure --with-version=<span style="color: rgba(128, 0, 128, 1)">5.1</span>.<span style="color: rgba(128, 0, 128, 1)">0</span>-<span style="color: rgba(128, 0, 128, 1)">0</span>-g0 --with-lg-quantum=<span style="color: rgba(128, 0, 128, 1)">3</span> --with-jemalloc-prefix=je_ --enable-cc-silence CFLAGS=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops </span><span style="color: rgba(128, 0, 0, 1)">"</span> LDFLAGS=<span style="color: rgba(128, 0, 0, 1)">""</span><span style="color: rgba(0, 0, 0, 1)">
configure: WARNING: unrecognized options: </span>--enable-cc-<span style="color: rgba(0, 0, 0, 1)">silence
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span> xsltproc... /usr/bin/<span style="color: rgba(0, 0, 0, 1)">xsltproc
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> gcc... gcc
checking whether the C compiler works... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span> C compiler <span style="color: rgba(0, 0, 255, 1)">default</span><span style="color: rgba(0, 0, 0, 1)"> output file name... a.out
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> suffix of executables...
checking whether we are cross compiling... no
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts </span>-<span style="color: rgba(0, 0, 0, 1)">g... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> gcc option to accept ISO C89... none needed
checking whether compiler is cray... no
checking whether compiler supports </span>-std=<span style="color: rgba(0, 0, 0, 1)">gnu11... yes
checking whether compiler supports </span>-<span style="color: rgba(0, 0, 0, 1)">Wall... yes
checking whether compiler supports </span>-Wshorten-<span style="color: rgba(128, 0, 128, 1)">64</span>-to-<span style="color: rgba(128, 0, 128, 1)">32</span><span style="color: rgba(0, 0, 0, 1)">... no
checking whether compiler supports </span>-Wsign-<span style="color: rgba(0, 0, 0, 1)">compare... yes
checking whether compiler supports </span>-<span style="color: rgba(0, 0, 0, 1)">Wundef... yes
checking whether compiler supports </span>-Wno-format-zero-<span style="color: rgba(0, 0, 0, 1)">length... yes
checking whether compiler supports </span>-<span style="color: rgba(0, 0, 0, 1)">pipe... yes
checking whether compiler supports </span>-<span style="color: rgba(0, 0, 0, 1)">g3... yes
checking how to run the C preprocessor... gcc </span>-<span style="color: rgba(0, 0, 0, 1)">E
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span> g++... g++<span style="color: rgba(0, 0, 0, 1)">
checking whether we are using the GNU C</span>++<span style="color: rgba(0, 0, 0, 1)"> compiler... yes
checking whether g</span>++ accepts -<span style="color: rgba(0, 0, 0, 1)">g... yes
checking whether g</span>++ supports C++<span style="color: rgba(128, 0, 128, 1)">14</span> features by <span style="color: rgba(0, 0, 255, 1)">default</span><span style="color: rgba(0, 0, 0, 1)">... yes
checking whether compiler supports </span>-<span style="color: rgba(0, 0, 0, 1)">Wall... yes
checking whether compiler supports </span>-<span style="color: rgba(0, 0, 0, 1)">g3... yes
checking whether libstdc</span>++<span style="color: rgba(0, 0, 0, 1)"> linkage is compilable... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span> grep that handles long lines and -e... /usr/bin/<span style="color: rgba(0, 0, 0, 1)">grep
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span> egrep... /usr/bin/grep -<span style="color: rgba(0, 0, 0, 1)">E
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> ANSI C header files... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span> sys/<span style="color: rgba(0, 0, 0, 1)">types.h... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span> sys/<span style="color: rgba(0, 0, 0, 1)">stat.h... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> stdlib.h... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span> <span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">.h... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> memory.h... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> strings.h... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> inttypes.h... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> stdint.h... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> unistd.h... yes
checking whether </span><span style="color: rgba(0, 0, 255, 1)">byte</span><span style="color: rgba(0, 0, 0, 1)"> ordering is bigendian... no
checking size of void </span>*... <span style="color: rgba(128, 0, 128, 1)">8</span><span style="color: rgba(0, 0, 0, 1)">
checking size of </span><span style="color: rgba(0, 0, 255, 1)">int</span>... <span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">
checking size of long... </span><span style="color: rgba(128, 0, 128, 1)">8</span><span style="color: rgba(0, 0, 0, 1)">
checking size of long long... </span><span style="color: rgba(128, 0, 128, 1)">8</span><span style="color: rgba(0, 0, 0, 1)">
checking size of intmax_t... </span><span style="color: rgba(128, 0, 128, 1)">8</span><span style="color: rgba(0, 0, 0, 1)">
checking build system </span><span style="color: rgba(0, 0, 255, 1)">type</span>... x86_64-pc-linux-<span style="color: rgba(0, 0, 0, 1)">gnu
checking host system </span><span style="color: rgba(0, 0, 255, 1)">type</span>... x86_64-pc-linux-<span style="color: rgba(0, 0, 0, 1)">gnu
checking whether pause instruction is compilable... yes
checking number of significant virtual address bits... </span><span style="color: rgba(128, 0, 128, 1)">48</span><span style="color: rgba(0, 0, 0, 1)">
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> ar... ar
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> nm... nm
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> gawk... gawk
checking malloc.h usability... yes
checking malloc.h presence... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> malloc.h... yes
checking whether malloc_usable_size definition can use </span><span style="color: rgba(0, 0, 255, 1)">const</span><span style="color: rgba(0, 0, 0, 1)"> argument... no
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span> library containing log... -<span style="color: rgba(0, 0, 0, 1)">lm
checking whether __attribute__ syntax is compilable... yes
checking whether compiler supports </span>-fvisibility=<span style="color: rgba(0, 0, 0, 1)">hidden... yes
checking whether compiler supports </span>-fvisibility=<span style="color: rgba(0, 0, 0, 1)">hidden... yes
checking whether compiler supports </span>-<span style="color: rgba(0, 0, 0, 1)">Werror... yes
checking whether compiler supports </span>-<span style="color: rgba(0, 0, 0, 1)">herror_on_warning... no
checking whether tls_model attribute is compilable... yes
checking whether compiler supports </span>-<span style="color: rgba(0, 0, 0, 1)">Werror... yes
checking whether compiler supports </span>-<span style="color: rgba(0, 0, 0, 1)">herror_on_warning... no
checking whether alloc_size attribute is compilable... yes
checking whether compiler supports </span>-<span style="color: rgba(0, 0, 0, 1)">Werror... yes
checking whether compiler supports </span>-<span style="color: rgba(0, 0, 0, 1)">herror_on_warning... no
checking whether format(gnu_printf, ...) attribute is compilable... yes
checking whether compiler supports </span>-<span style="color: rgba(0, 0, 0, 1)">Werror... yes
checking whether compiler supports </span>-<span style="color: rgba(0, 0, 0, 1)">herror_on_warning... no
checking whether format(printf, ...) attribute is compilable... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span> a BSD-compatible install... /usr/bin/install -<span style="color: rgba(0, 0, 0, 1)">c
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> ranlib... ranlib
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span> ld... /usr/bin/<span style="color: rgba(0, 0, 0, 1)">ld
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span> autoconf... /usr/bin/<span style="color: rgba(0, 0, 0, 1)">autoconf
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> memalign... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> valloc... yes
checking whether compiler supports </span>-<span style="color: rgba(0, 0, 0, 1)">O3... yes
checking whether compiler supports </span>-<span style="color: rgba(0, 0, 0, 1)">O3... yes
checking whether compiler supports </span>-funroll-<span style="color: rgba(0, 0, 0, 1)">loops... yes
checking configured backtracing method... N</span>/<span style="color: rgba(0, 0, 0, 1)">A
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> sbrk... yes
checking whether utrace(</span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">) is compilable... no
checking whether a program using __builtin_unreachable is compilable... yes
checking whether a program using __builtin_ffsl is compilable... yes
checking LG_PAGE... </span><span style="color: rgba(128, 0, 128, 1)">12</span><span style="color: rgba(0, 0, 0, 1)">
checking pthread.h usability... yes
checking pthread.h presence... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> pthread.h... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span> pthread_create in -<span style="color: rgba(0, 0, 0, 1)">lpthread... yes
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> dlfcn.h... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> dlsym... no
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span> dlsym in -<span style="color: rgba(0, 0, 0, 1)">ldl... yes
checking whether pthread_atfork(</span><span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">) is compilable... yes
checking whether pthread_setname_np(</span><span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">) is compilable... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> library containing clock_gettime... none required
checking whether clock_gettime(CLOCK_MONOTONIC_COARSE, ...) is compilable... yes
checking whether clock_gettime(CLOCK_MONOTONIC, ...) is compilable... yes
checking whether mach_absolute_time() is compilable... no
checking whether compiler supports </span>-<span style="color: rgba(0, 0, 0, 1)">Werror... yes
checking whether syscall(</span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">) is compilable... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> secure_getenv... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> sched_getcpu... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> sched_setaffinity... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> issetugid... no
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> _malloc_thread_cleanup... no
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> _pthread_mutex_init_calloc_cb... no
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> TLS... yes
checking whether C11 atomics is compilable... no
checking whether GCC __atomic atomics is compilable... yes
checking whether GCC __sync atomics is compilable... yes
checking whether Darwin OSAtomic</span>*<span style="color: rgba(0, 0, 0, 1)">() is compilable... no
checking whether madvise(</span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">) is compilable... yes
checking whether madvise(..., MADV_FREE) is compilable... yes
checking whether madvise(..., MADV_DONTNEED) is compilable... yes
checking whether madvise(..., MADV_DODUMP) is compilable... yes
checking whether madvise(..., MADV_HUGEPAGE) is compilable... yes
checking whether to force </span><span style="color: rgba(128, 0, 128, 1)">32</span>-<span style="color: rgba(0, 0, 0, 1)">bit __sync_{add,sub}_and_fetch()... no
checking whether to force </span><span style="color: rgba(128, 0, 128, 1)">64</span>-<span style="color: rgba(0, 0, 0, 1)">bit __sync_{add,sub}_and_fetch()... no
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> __builtin_clz... yes
checking whether Darwin os_unfair_lock_</span>*<span style="color: rgba(0, 0, 0, 1)">() is compilable... no
checking whether Darwin OSSpin</span>*<span style="color: rgba(0, 0, 0, 1)">() 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 whether compiler supports </span>-<span style="color: rgba(0, 0, 0, 1)">D_GNU_SOURCE... yes
checking whether compiler supports </span>-<span style="color: rgba(0, 0, 0, 1)">Werror... yes
checking whether compiler supports </span>-<span style="color: rgba(0, 0, 0, 1)">herror_on_warning... no
checking whether strerror_r returns char with gnu source is compilable... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> stdbool.h that conforms to C99... yes
checking </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> _Bool... yes
configure: creating .</span>/<span style="color: rgba(0, 0, 0, 1)">config.status
config.status: creating Makefile
config.status: creating jemalloc.pc
config.status: creating doc</span>/<span style="color: rgba(0, 0, 0, 1)">html.xsl
config.status: creating doc</span>/<span style="color: rgba(0, 0, 0, 1)">manpages.xsl
config.status: creating doc</span>/<span style="color: rgba(0, 0, 0, 1)">jemalloc.xml
config.status: creating include</span>/jemalloc/<span style="color: rgba(0, 0, 0, 1)">jemalloc_macros.h
config.status: creating include</span>/jemalloc/<span style="color: rgba(0, 0, 0, 1)">jemalloc_protos.h
config.status: creating include</span>/jemalloc/<span style="color: rgba(0, 0, 0, 1)">jemalloc_typedefs.h
config.status: creating include</span>/jemalloc/internal/<span style="color: rgba(0, 0, 0, 1)">jemalloc_preamble.h
config.status: creating test</span>/<span style="color: rgba(0, 0, 0, 1)">test.sh
config.status: creating test</span>/include/test/<span style="color: rgba(0, 0, 0, 1)">jemalloc_test.h
config.status: creating config.stamp
config.status: creating bin</span>/jemalloc-<span style="color: rgba(0, 0, 0, 1)">config
config.status: creating bin</span>/<span style="color: rgba(0, 0, 0, 1)">jemalloc.sh
config.status: creating bin</span>/<span style="color: rgba(0, 0, 0, 1)">jeprof
config.status: creating include</span>/jemalloc/<span style="color: rgba(0, 0, 0, 1)">jemalloc_defs.h
config.status: creating include</span>/jemalloc/internal/<span style="color: rgba(0, 0, 0, 1)">jemalloc_internal_defs.h
config.status: creating test</span>/include/test/<span style="color: rgba(0, 0, 0, 1)">jemalloc_test_defs.h
config.status: executing include</span>/jemalloc/internal/<span style="color: rgba(0, 0, 0, 1)">public_symbols.txt commands
config.status: executing include</span>/jemalloc/internal/<span style="color: rgba(0, 0, 0, 1)">private_symbols.awk commands
config.status: executing include</span>/jemalloc/internal/<span style="color: rgba(0, 0, 0, 1)">private_symbols_jet.awk commands
config.status: executing include</span>/jemalloc/internal/<span style="color: rgba(0, 0, 0, 1)">public_namespace.h commands
config.status: executing include</span>/jemalloc/internal/<span style="color: rgba(0, 0, 0, 1)">public_unnamespace.h commands
config.status: executing include</span>/jemalloc/internal/<span style="color: rgba(0, 0, 0, 1)">size_classes.h commands
config.status: executing include</span>/jemalloc/<span style="color: rgba(0, 0, 0, 1)">jemalloc_protos_jet.h commands
config.status: executing include</span>/jemalloc/<span style="color: rgba(0, 0, 0, 1)">jemalloc_rename.h commands
config.status: executing include</span>/jemalloc/<span style="color: rgba(0, 0, 0, 1)">jemalloc_mangle.h commands
config.status: executing include</span>/jemalloc/<span style="color: rgba(0, 0, 0, 1)">jemalloc_mangle_jet.h commands
config.status: executing include</span>/jemalloc/<span style="color: rgba(0, 0, 0, 1)">jemalloc.h commands
configure: WARNING: unrecognized options: </span>--enable-cc-<span style="color: rgba(0, 0, 0, 1)">silence
</span>===============================================================================<span style="color: rgba(0, 0, 0, 1)">
jemalloc version   : </span><span style="color: rgba(128, 0, 128, 1)">5.1</span>.<span style="color: rgba(128, 0, 128, 1)">0</span>-<span style="color: rgba(128, 0, 128, 1)">0</span>-<span style="color: rgba(0, 0, 0, 1)">g0
library revision   : </span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">

CONFIG             : </span>--with-version=<span style="color: rgba(128, 0, 128, 1)">5.1</span>.<span style="color: rgba(128, 0, 128, 1)">0</span>-<span style="color: rgba(128, 0, 128, 1)">0</span>-g0 --with-lg-quantum=<span style="color: rgba(128, 0, 128, 1)">3</span> --with-jemalloc-prefix=je_ --enable-cc-silence <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">CFLAGS=-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops </span><span style="color: rgba(128, 0, 0, 1)">'</span> LDFLAGS=<span style="color: rgba(0, 0, 0, 1)">
CC               : gcc
CONFIGURE_CFLAGS   : </span>-std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-<span style="color: rgba(0, 0, 0, 1)">loops
SPECIFIED_CFLAGS   : </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-<span style="color: rgba(0, 0, 0, 1)">loops
EXTRA_CFLAGS       :
CPPFLAGS         : </span>-D_GNU_SOURCE -<span style="color: rgba(0, 0, 0, 1)">D_REENTRANT
CXX                : g</span>++<span style="color: rgba(0, 0, 0, 1)">
CONFIGURE_CXXFLAGS : </span>-Wall -g3 -fvisibility=hidden -<span style="color: rgba(0, 0, 0, 1)">O3
SPECIFIED_CXXFLAGS :
EXTRA_CXXFLAGS   :
LDFLAGS            :
EXTRA_LDFLAGS      :
DSO_LDFLAGS      : </span>-shared -Wl,-<span style="color: rgba(0, 0, 0, 1)">soname,$(@F)
LIBS               : </span>-lm -lstdc++ -lpthread -<span style="color: rgba(0, 0, 0, 1)">ldl
RPATH_EXTRA      :

XSLTPROC         : </span>/usr/bin/<span style="color: rgba(0, 0, 0, 1)">xsltproc
XSLROOT            : </span>/usr/share/sgml/docbook/xsl-<span style="color: rgba(0, 0, 0, 1)">stylesheets

PREFIX             : </span>/usr/<span style="color: rgba(0, 0, 0, 1)">local
BINDIR             : </span>/usr/local/<span style="color: rgba(0, 0, 0, 1)">bin
DATADIR            : </span>/usr/local/<span style="color: rgba(0, 0, 0, 1)">share
INCLUDEDIR         : </span>/usr/local/<span style="color: rgba(0, 0, 0, 1)">include
LIBDIR             : </span>/usr/local/<span style="color: rgba(0, 0, 0, 1)">lib
MANDIR             : </span>/usr/local/share/<span style="color: rgba(0, 0, 0, 1)">man

srcroot            :
abs_srcroot      : </span>/usr/local/redis/redis-<span style="color: rgba(128, 0, 128, 1)">5.0</span>.<span style="color: rgba(128, 0, 128, 1)">5</span>/deps/jemalloc/<span style="color: rgba(0, 0, 0, 1)">
objroot            :
abs_objroot      : </span>/usr/local/redis/redis-<span style="color: rgba(128, 0, 128, 1)">5.0</span>.<span style="color: rgba(128, 0, 128, 1)">5</span>/deps/jemalloc/<span style="color: rgba(0, 0, 0, 1)">

JEMALLOC_PREFIX    : je_
JEMALLOC_PRIVATE_NAMESPACE
                   : je_
install_suffix   :
malloc_conf      :
autogen            : </span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
debug            : </span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
stats            : </span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
prof               : </span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
prof</span>-libunwind   : <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
prof</span>-libgcc      : <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
prof</span>-gcc         : <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
fill               : </span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
utrace             : </span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
xmalloc            : </span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
log                : </span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
lazy_lock          : </span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
cache</span>-oblivious    : <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
cxx                : </span><span style="color: rgba(128, 0, 128, 1)">1</span>
===============================================================================<span style="color: rgba(0, 0, 0, 1)">
cd jemalloc </span>&amp;&amp; <span style="color: rgba(0, 0, 255, 1)">make</span> CFLAGS=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops </span><span style="color: rgba(128, 0, 0, 1)">"</span> LDFLAGS=<span style="color: rgba(128, 0, 0, 1)">""</span> lib/<span style="color: rgba(0, 0, 0, 1)">libjemalloc.a
</span><span style="color: rgba(0, 0, 255, 1)">make</span>[<span style="color: rgba(128, 0, 128, 1)">3</span>]: 进入目录“/usr/local/redis/redis-<span style="color: rgba(128, 0, 128, 1)">5.0</span>.<span style="color: rgba(128, 0, 128, 1)">5</span>/deps/<span style="color: rgba(0, 0, 0, 1)">jemalloc”
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/jemalloc.sym.o src/<span style="color: rgba(0, 0, 0, 1)">jemalloc.c
nm </span>-a src/jemalloc.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">jemalloc.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/arena.sym.o src/<span style="color: rgba(0, 0, 0, 1)">arena.c
nm </span>-a src/arena.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">arena.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/background_thread.sym.o src/<span style="color: rgba(0, 0, 0, 1)">background_thread.c
nm </span>-a src/background_thread.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">background_thread.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/base.sym.o src/<span style="color: rgba(0, 0, 0, 1)">base.c
nm </span>-a src/base.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">base.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/bin.sym.o src/<span style="color: rgba(0, 0, 0, 1)">bin.c
nm </span>-a src/bin.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">bin.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/bitmap.sym.o src/<span style="color: rgba(0, 0, 0, 1)">bitmap.c
nm </span>-a src/bitmap.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">bitmap.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/ckh.sym.o src/<span style="color: rgba(0, 0, 0, 1)">ckh.c
nm </span>-a src/ckh.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">ckh.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/ctl.sym.o src/<span style="color: rgba(0, 0, 0, 1)">ctl.c
nm </span>-a src/ctl.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">ctl.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/div.sym.o src/<span style="color: rgba(0, 0, 0, 1)">div.c
nm </span>-a src/div.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">div.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/extent.sym.o src/<span style="color: rgba(0, 0, 0, 1)">extent.c
nm </span>-a src/extent.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">extent.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/extent_dss.sym.o src/<span style="color: rgba(0, 0, 0, 1)">extent_dss.c
nm </span>-a src/extent_dss.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">extent_dss.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/extent_mmap.sym.o src/<span style="color: rgba(0, 0, 0, 1)">extent_mmap.c
nm </span>-a src/extent_mmap.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">extent_mmap.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/hash.sym.o src/<span style="color: rgba(0, 0, 0, 1)">hash.c
nm </span>-a src/hash.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">hash.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/hooks.sym.o src/<span style="color: rgba(0, 0, 0, 1)">hooks.c
nm </span>-a src/hooks.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">hooks.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/large.sym.o src/<span style="color: rgba(0, 0, 0, 1)">large.c
nm </span>-a src/large.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">large.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/log.sym.o src/<span style="color: rgba(0, 0, 0, 1)">log.c
nm </span>-a src/log.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">log.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/malloc_io.sym.o src/<span style="color: rgba(0, 0, 0, 1)">malloc_io.c
nm </span>-a src/malloc_io.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">malloc_io.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/mutex.sym.o src/<span style="color: rgba(0, 0, 0, 1)">mutex.c
nm </span>-a src/mutex.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">mutex.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/mutex_pool.sym.o src/<span style="color: rgba(0, 0, 0, 1)">mutex_pool.c
nm </span>-a src/mutex_pool.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">mutex_pool.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/nstime.sym.o src/<span style="color: rgba(0, 0, 0, 1)">nstime.c
nm </span>-a src/nstime.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">nstime.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/pages.sym.o src/<span style="color: rgba(0, 0, 0, 1)">pages.c
nm </span>-a src/pages.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">pages.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/prng.sym.o src/<span style="color: rgba(0, 0, 0, 1)">prng.c
nm </span>-a src/prng.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">prng.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/prof.sym.o src/<span style="color: rgba(0, 0, 0, 1)">prof.c
nm </span>-a src/prof.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">prof.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/rtree.sym.o src/<span style="color: rgba(0, 0, 0, 1)">rtree.c
nm </span>-a src/rtree.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">rtree.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/stats.sym.o src/<span style="color: rgba(0, 0, 0, 1)">stats.c
nm </span>-a src/stats.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">stats.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/sz.sym.o src/<span style="color: rgba(0, 0, 0, 1)">sz.c
nm </span>-a src/sz.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">sz.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/tcache.sym.o src/<span style="color: rgba(0, 0, 0, 1)">tcache.c
nm </span>-a src/tcache.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">tcache.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/ticker.sym.o src/<span style="color: rgba(0, 0, 0, 1)">ticker.c
nm </span>-a src/ticker.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">ticker.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/tsd.sym.o src/<span style="color: rgba(0, 0, 0, 1)">tsd.c
nm </span>-a src/tsd.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">tsd.sym
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/witness.sym.o src/<span style="color: rgba(0, 0, 0, 1)">witness.c
nm </span>-a src/witness.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk &gt; src/<span style="color: rgba(0, 0, 0, 1)">witness.sym
</span>/bin/sh include/jemalloc/internal/private_namespace.sh src/jemalloc.sym src/arena.sym src/background_thread.sym src/base.sym src/bin.sym src/bitmap.sym src/ckh.sym src/ctl.sym src/div.sym src/extent.sym src/extent_dss.sym src/extent_mmap.sym src/hash.sym src/hooks.sym src/large.sym src/log.sym src/malloc_io.sym src/mutex.sym src/mutex_pool.sym src/nstime.sym src/pages.sym src/prng.sym src/prof.sym src/rtree.sym src/stats.sym src/sz.sym src/tcache.sym src/ticker.sym src/tsd.sym src/witness.sym &gt; include/jemalloc/internal/<span style="color: rgba(0, 0, 0, 1)">private_namespace.gen.h
cp include</span>/jemalloc/internal/private_namespace.gen.h include/jemalloc/internal/<span style="color: rgba(0, 0, 0, 1)">private_namespace.gen.h
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/jemalloc.o src/<span style="color: rgba(0, 0, 0, 1)">jemalloc.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/arena.o src/<span style="color: rgba(0, 0, 0, 1)">arena.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/background_thread.o src/<span style="color: rgba(0, 0, 0, 1)">background_thread.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/base.o src/<span style="color: rgba(0, 0, 0, 1)">base.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/bin.o src/<span style="color: rgba(0, 0, 0, 1)">bin.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/bitmap.o src/<span style="color: rgba(0, 0, 0, 1)">bitmap.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/ckh.o src/<span style="color: rgba(0, 0, 0, 1)">ckh.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/ctl.o src/<span style="color: rgba(0, 0, 0, 1)">ctl.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/div.o src/<span style="color: rgba(0, 0, 0, 1)">div.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/extent.o src/<span style="color: rgba(0, 0, 0, 1)">extent.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/extent_dss.o src/<span style="color: rgba(0, 0, 0, 1)">extent_dss.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/extent_mmap.o src/<span style="color: rgba(0, 0, 0, 1)">extent_mmap.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/hash.o src/<span style="color: rgba(0, 0, 0, 1)">hash.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/hooks.o src/<span style="color: rgba(0, 0, 0, 1)">hooks.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/large.o src/<span style="color: rgba(0, 0, 0, 1)">large.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/log.o src/<span style="color: rgba(0, 0, 0, 1)">log.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/malloc_io.o src/<span style="color: rgba(0, 0, 0, 1)">malloc_io.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/mutex.o src/<span style="color: rgba(0, 0, 0, 1)">mutex.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/mutex_pool.o src/<span style="color: rgba(0, 0, 0, 1)">mutex_pool.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/nstime.o src/<span style="color: rgba(0, 0, 0, 1)">nstime.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/pages.o src/<span style="color: rgba(0, 0, 0, 1)">pages.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/prng.o src/<span style="color: rgba(0, 0, 0, 1)">prng.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/prof.o src/<span style="color: rgba(0, 0, 0, 1)">prof.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/rtree.o src/<span style="color: rgba(0, 0, 0, 1)">rtree.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/stats.o src/<span style="color: rgba(0, 0, 0, 1)">stats.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/sz.o src/<span style="color: rgba(0, 0, 0, 1)">sz.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/tcache.o src/<span style="color: rgba(0, 0, 0, 1)">tcache.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/ticker.o src/<span style="color: rgba(0, 0, 0, 1)">ticker.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/tsd.o src/<span style="color: rgba(0, 0, 0, 1)">tsd.c
gcc </span>-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops-c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/witness.o src/<span style="color: rgba(0, 0, 0, 1)">witness.c
g</span>++ -Wall -g3 -fvisibility=hidden -O3 -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/jemalloc_cpp.o src/<span style="color: rgba(0, 0, 0, 1)">jemalloc_cpp.cpp
ar crus lib</span>/libjemalloc.a src/jemalloc.o src/arena.o src/background_thread.o src/base.o src/bin.o src/bitmap.o src/ckh.o src/ctl.o src/div.o src/extent.o src/extent_dss.o src/extent_mmap.o src/hash.o src/hooks.o src/large.o src/log.o src/malloc_io.o src/mutex.o src/mutex_pool.o src/nstime.o src/pages.o src/prng.o src/prof.o src/rtree.o src/stats.o src/sz.o src/tcache.o src/ticker.o src/tsd.o src/witness.o src/<span style="color: rgba(0, 0, 0, 1)">jemalloc_cpp.o
</span><span style="color: rgba(0, 0, 255, 1)">make</span>[<span style="color: rgba(128, 0, 128, 1)">3</span>]: 离开目录“/usr/local/redis/redis-<span style="color: rgba(128, 0, 128, 1)">5.0</span>.<span style="color: rgba(128, 0, 128, 1)">5</span>/deps/<span style="color: rgba(0, 0, 0, 1)">jemalloc”
</span><span style="color: rgba(0, 0, 255, 1)">make</span>[<span style="color: rgba(128, 0, 128, 1)">2</span>]: 离开目录“/usr/local/redis/redis-<span style="color: rgba(128, 0, 128, 1)">5.0</span>.<span style="color: rgba(128, 0, 128, 1)">5</span>/<span style="color: rgba(0, 0, 0, 1)">deps”
    CC adlist.o
    CC quicklist.o
    CC ae.o
    CC anet.o
    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</span>-check-<span style="color: rgba(0, 0, 0, 1)">rdb.o
    CC redis</span>-check-<span style="color: rgba(0, 0, 0, 1)">aof.o
    CC geo.o
    CC lazyfree.o
    CC module.o
    CC evict.o
    CC expire.o
    CC geohash.o
    CC geohash_helper.o
    CC childinfo.o
    CC defrag.o
    CC siphash.o
    CC rax.o
    CC t_stream.o
    CC listpack.o
    CC localtime.o
    CC lolwut.o
    CC lolwut5.o
    LINK redis</span>-<span style="color: rgba(0, 0, 0, 1)">server
    INSTALL redis</span>-<span style="color: rgba(0, 0, 0, 1)">sentinel
    CC redis</span>-<span style="color: rgba(0, 0, 0, 1)">cli.o
    LINK redis</span>-<span style="color: rgba(0, 0, 0, 1)">cli
    CC redis</span>-<span style="color: rgba(0, 0, 0, 1)">benchmark.o
    LINK redis</span>-<span style="color: rgba(0, 0, 0, 1)">benchmark
    INSTALL redis</span>-check-<span style="color: rgba(0, 0, 0, 1)">rdb
    INSTALL redis</span>-check-<span style="color: rgba(0, 0, 0, 1)">aof

Hint: It</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">s a good idea to run </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 255, 1)">make</span> test<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)"> ;)</span>

<span style="color: rgba(0, 0, 255, 1)">make</span>[<span style="color: rgba(128, 0, 128, 1)">1</span>]: 离开目录“/usr/local/redis/redis-<span style="color: rgba(128, 0, 128, 1)">5.0</span>.<span style="color: rgba(128, 0, 128, 1)">5</span>/src”</pre>
</div>
<span class="cnblogs_code_collapse"><br></span></div>
<p><img alt="" loading="lazy" src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314113159278-1834205509.png"></p>
<p>5、修改配置文件:/usr/local/redis/redis-5.0.5/redis.conf</p>
<div class="cnblogs_Highlighter">
<pre class="brush:sql;gutter:true;"># cd /usr/local/redis/redis-5.0.5</pre>
</div>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202302/1204515-20230221094421648-2138417045.png"></p>
<p>然后执行:# vi redis.conf</p>
<p>6、需要修改的内容</p>
<p class="brush:sql;gutter:true;">bind 127.0.0.1 192.168.0.57 #绑定的地址,127为了本地访问,内网地址为其它地址访问</p>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314113529224-1936092880.png"></p>
<p class="brush:sql;gutter:true;">protected-mode no #保护模式关闭</p>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314113544265-1243320107.png"></p>
<p>&nbsp;port 6379 #端口号,建议不修改</p>
<p class="brush:sql;gutter:true;"><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314113621019-2046215958.png"></p>
<p class="brush:sql;gutter:true;">timeout 180 #超时时间</p>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314113756053-890903831.png"></p>
<p>daemonize yes #后台启动</p>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314113846329-311171363.png"></p>
<p>save 900 1 #900秒时间,至少有一条数据更新,则保存到数据文件中</p>
<p>save 300 10 #300秒时间,至少有10条数据更新,则保存到数据文件中</p>
<p>save 60 10000 #60秒时间,至少有10000条数据更新,则保存到数据文件中</p>
<p><em><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314113955532-1962059351.png"></em></p>
<p>rdbcompression yes #指定存储至本地数据库时是否压缩数据,默认是yes,redis采用LZF压缩,如果为了节省CPU时间,&nbsp;#可以关闭该选项,但会导致数据库文件扁的巨大</p>
<p><em><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314114014632-1599425267.png"></em></p>
<p>dbfilename dump.rdb #redis数据名称</p>
<p><em><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314114058581-1431713973.png"></em></p>
<p>dir /usr/redisdb #redis数据存储位置</p>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314114321178-1160500750.png"></p>
<p class="brush:sql;gutter:true;">appendonly yes #打开aof模式</p>
<p class="brush:sql;gutter:true;"><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314114814838-475187574.png"></p>
<p>logfile "/usr/local/redis/logs/redis.log"#设置日志打印地址</p>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314115319746-289652312.png"></p>
<h1>三、启动Redis</h1>
<p data-pid="2i9L-7rF">redis的启动方式有很多种,例如:默认启动、开机自启</p>
<h2>1、手动启动</h2>
<p>安装完成后,在任意位置执行:&nbsp;/usr/local/redis/redis-5.0.5/src/redis-server命令即可启动Redis</p>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314115845383-1322893795.png"></p>
<p>可以看到redis已经安装成功了。这个时候你会发现不能进行其他操作了,因为这是在前台启动的redis。</p>
<p>这个时候可以再启动一个客户端使用cd /usr/local/redis/redis-5.0.5/src/&nbsp; ./redis-cli&nbsp;shutdown命令关闭redis服务,然后会在之前的客户端看到日志信息。</p>
<div class="cnblogs_code"><span class="cnblogs_code_collapse">日志信息</span></div>
<h2 data-pid="dU_fy5aB">2、设置开机自启动方法一</h2>
<h3><span style="font-size: 14px">1、创建/etc/redis目录</span><span style="font-size: 14px">复制配置文件</span><code style="font-size: 14px">redis.conf 到/etc/redis下并</code><span style="font-size: 14px">改名6379.conf</span></h3>
<div class="cnblogs_code">
<pre># mkdir /etc/redis   # 创建/etc/redis目录</pre>
<pre>#&nbsp;cd /usr/local/redis/redis-5.0.5# 打开路径</pre>
<pre>#&nbsp;cp -r redis.conf /etc/redis/<span style="color: rgba(128, 0, 128, 1)">6379</span>.conf# 复制配置文件<code>redis.conf 到/etc/redis下并</code>改名6379.conf</pre>
</div>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314161057593-579046745.png"></p>
<h3>2、复制配置文件redis_init_script到/etc/init.d下并命名redis</h3>
<div class="cnblogs_code">
<pre># cd /usr/local/redis/redis-5.0.5/utils# 打开路径</pre>
<pre><em># cp redis_init_script /etc/init.d/redis# </em>复制配置文件redis_init_script到/etc/init.d下并命名redis</pre>
</div>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314160303465-271713401.png"></p>
<p>3、cd /etc/init.d/目录下--&gt;编辑文件vi redis</p>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314161533852-104912418.png"></p>
<p>上面路径替换城redis的安装路径,如下</p>
<div class="cnblogs_code">
<pre>EXEC=/usr/local/redis/redis-<span style="color: rgba(128, 0, 128, 1)">5.0</span>.<span style="color: rgba(128, 0, 128, 1)">5</span>/src/redis-<span style="color: rgba(0, 0, 0, 1)">server
CLIEXEC</span>=/usr/local/redis/redis-<span style="color: rgba(128, 0, 128, 1)">5.0</span>.<span style="color: rgba(128, 0, 128, 1)">5</span>/src/redis-cli</pre>
</div>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314162053448-1497664166.png"></p>
<p>在文件最上边添加如下编码</p>
<div class="cnblogs_code">
<pre>#!/bin/<span style="color: rgba(0, 0, 0, 1)">sh
# chkconfig: </span><span style="color: rgba(128, 0, 128, 1)">2345</span> <span style="color: rgba(128, 0, 128, 1)">10</span> <span style="color: rgba(128, 0, 128, 1)">90</span><span style="color: rgba(0, 0, 0, 1)">
# description: Start and Stop redis</span></pre>
</div>
<p>备注:</p>
<p>上面的注释的意思是,redis服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,关闭的优先级是10。从redis 安装目录中拷贝过来,可能没有,需要添加 上去; 否则 chkconfig 命令 会失败;</p>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314162901981-1838566079.png"></p>
<p>4、开机启动设置,执行一下命令:添加redis服务:</p>
<div class="cnblogs_code">
<pre>chkconfig --add redis</pre>
</div>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314163209446-1610516904.png"></p>
<p>5、设为开机启动</p>
<div class="cnblogs_code">
<pre>chkconfig redis on</pre>
</div>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314163248005-419829244.png"></p>
<p>6、修改文件权限</p>
<div class="cnblogs_code">
<pre>chmod <span style="color: rgba(128, 0, 128, 1)">777</span> /etc/init.d/redis</pre>
</div>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314162151092-922094825.png"></p>
<h2 data-pid="dU_fy5aB">3、设置开机自启动方法二</h2>
<p data-pid="Zsu3SUwu">在学习redis时每次都需要手动开启redis,为了方便就设置一个开机自启</p>
<p data-pid="NENRD5OS">1.新建一个系统服务文件:cd&nbsp;/etc/systemd/system路径下新建redis.service的文件</p>
<p data-pid="NENRD5OS"><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314151231855-1128475522.png"></p>
<pre><code class="language-text">可以使用vi /etc/systemd/system/redis.service直接创建<br></code></pre>
<pre>内容如下:</pre>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">
Description</span>=redis-<span style="color: rgba(0, 0, 0, 1)">server
After</span>=<span style="color: rgba(0, 0, 0, 1)">network.target

Type</span>=<span style="color: rgba(0, 0, 0, 1)">forking
ExecStart</span>=/usr/local/redis/redis-<span style="color: rgba(128, 0, 128, 1)">5.0</span>.<span style="color: rgba(128, 0, 128, 1)">5</span>/src/redis-server /usr/local/redis/redis-5.0.5/redis.conf<span style="color: rgba(0, 0, 0, 1)">
PrivateTmp</span>=<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)"> ​
<br> WantedBy</span>=multi-user.target</pre>
</div>
<p data-pid="eB8ih-zm">ExecStart=/opt/software/redis-6.2.6/src/redis-server :启动服务的命令的位置<br>/usr/local/redis/redis-5.0.5/redis.conf 配置文件命令的位置</p>
<p data-pid="eB8ih-zm"><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314153324651-1258947363.png"></p>
<p data-pid="eB8ih-zm">然后重载系统服务:</p>
<div class="highlight">
<pre><code class="language-text"> systemctl daemon-reload</code></pre>
</div>
<p data-pid="NENRD5OS"><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230313161110722-1669200709.png"></p>
<p data-pid="0CRthEKy">&nbsp;</p>
<h2 data-pid="mfXy34IJ">4、指定配置启动</h2>
<p data-pid="yCbBk-KU">前面在启动redis服务器后,都是在前台启动的,需要重新启动一个客户端来进行登陆操作。为了解决这个问题,我们需要设置后台启动。如果要让Redis以<code>后台</code>方式启动,则必须修改Redis配置文件,就在我们之前解压的redis安装包下(cd /usr/local/redis/redis-5.0.5),名字叫redis.conf:</p>
<p data-pid="yCbBk-KU"><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230313154820674-1555545788.png"></p>
<p>我们先将这个配置文件备份一份:<span style="font-family: &quot;Courier New&quot;; font-size: 12px">&nbsp;cp redis.conf redis.conf.copy</span></p>
<p><span style="font-family: &quot;Courier New&quot;; font-size: 12px"><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230313154905998-513963941.png"></span></p>
<p data-pid="Zndb0ZFq">然后修改redis.conf文件中的一些配置:vi&nbsp;redis.conf</p>
<pre> # 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0<span>
bind 0.0.0.0</span></pre>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230313155034946-596673937.png"></p>
<p><span> # daemonize no修改为daemonize yes 这里表示将redis以守护进程的方式在后台运行;</span></p>
<img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230313155101490-1736484717.png">
<p><span> # 密码,设置后访问Redis必须输入密码 requirepass 123321</span></p>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230313155515316-750940022.png"></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">Redis的其它常见配置:

# 监听的端口
port </span><span style="color: rgba(128, 0, 128, 1)">6379</span><span style="color: rgba(0, 0, 0, 1)">
# 工作目录,默认是当前目录,也就是运行redis</span>-<span style="color: rgba(0, 0, 0, 1)">server时的命令,日志、持久化等文件会保存在这个目录
dir .
# 数据库数量,设置为1,代表只使用1个库,默认有16个库,编号0</span>~<span style="color: rgba(128, 0, 128, 1)">15</span><span style="color: rgba(0, 0, 0, 1)">
databases </span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
# 设置redis能够使用的最大内存
maxmemory 512mb
# 日志文件,默认为空,不记录日志,可以指定日志文件名
logfile </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">redis.log</span><span style="color: rgba(128, 0, 0, 1)">"</span></pre>
</div>
<h2 data-pid="IczaJCDA">5、启动Redis</h2>
<div class="highlight">
<pre><code class="language-text"> # 进入redis安装目录
cd /usr/local/redis/redis-5.0.5/src
# 启动
/usr/local/redis/redis-5.0.5/src/redis-server&nbsp;/usr/local/redis/redis-5.0.5/redis.conf<br><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230313144949636-703183392.png"><br></code></pre>
<p data-pid="0CRthEKy">现在,我们可以用下面这组命令来操作redis了:</p>
<div class="highlight">
<pre><code class="language-text"> # 启动
systemctl start redis
# 停止
systemctl stop redis
# 重启
systemctl restart redis
# 查看状态
systemctl status redis<br>报错:未启动状态,为解决<br><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314163620489-370433232.png"></code></pre>
</div>
<p data-pid="dS2cAqB0">执行下面的命令,可以让redis开机自启:</p>
<div class="highlight">
<pre><code class="language-text"> systemctl enable redis<br>报错:未完待续<br><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314163648648-2003187105.png"></code></pre>
</div>
</div>
<h2 data-pid="MZ3s7jJY">6、停止服务</h2>
<div class="highlight">
<pre><code class="language-text"># 进入redis安装目录
cd /usr/local/redis/redis-5.0.5/src</code></pre>
<pre><code class="language-text"># 利用redis-cli来执行 shutdown 命令,即可停止 Redis 服务,
# 因为之前配置了密码,因此需要通过 -u 来指定密码
./redis-cli -u 123321 shutdown</code></pre>
</div>
<p>&nbsp;<img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230313160433757-1611928404.png"></p>
<p>&nbsp;</p>
<h2>7、设置开机启动</h2>
<p>echo '/usr/local/redis/redis-5.0.5/src/redis-server /usr/local/redis/redis-5.0.5/redis.conf' &gt;&gt; /etc/rc.local</p>
<h2>8、查看状态:ps -aux|grep redis</h2>
<p><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230313145922285-1696585710.png"></p>
<h2>9、查看安装位置whereis redis</h2>
<p>&nbsp;<img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230313150523261-596069061.png"></p>
<h1>四、使用redis-cli连接redis-server</h1>
<p data-pid="nVKsX9jJ">Redis安装完成后就自带了命令行客户端:redis-cli,使用方式如下:</p>
<div class="highlight">
<pre><code class="language-splus"> <span class="n">redis<span class="o">-<span class="n">cli <span class="n"> <span class="n"></span></span></span></span></span></code></pre>
</div>
<p data-pid="OcyEeQ30">其中常见的options有:</p>
<ul>
<li data-pid="dNp1XTG7"><code>-h 127.0.0.1</code>:指定要连接的redis节点的IP地址,默认是127.0.0.1</li>
<li data-pid="Hb2MImml"><code>-p 6379</code>:指定要连接的redis节点的端口,默认是6379</li>
<li data-pid="vYzNg1M-"><code>-a 123321</code>:指定redis的访问密码</li>
</ul>
<p data-pid="vrBizBku">其中的commonds就是Redis的操作命令,例如:</p>
<ul>
<li data-pid="S-HAWfEs"><code>ping</code>:与redis服务端做心跳测试,服务端正常会返回<code>pong</code></li>
</ul>
<p data-pid="d2Jnv-QZ">不指定commond时,会进入<code>redis-cli</code>的交互控制台:</p>
<p data-pid="d2Jnv-QZ"><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230313164718365-282662115.png"></p>
<p>&nbsp;<img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314164528994-1160172680.png"></p>
<h1 id="blogTitle0">五、卸载redis</h1>
<h3 id="blogTitle2">1、打开终端命令行模式</h3>
<p>2、输入以下命令查看reids是否在运行,如果在运行需要将其关闭。</p>
<p>ps aux | <span class="hljs-keyword">grep redis <span class="hljs-comment">#查看reids是否在运行kill -9 PID #通过杀掉reids进程将其关闭</span></span></p>
<p><span class="hljs-keyword"><img src="https://img2023.cnblogs.com/blog/1204515/202303/1204515-20230314103838708-1917010163.png"></span></p>
<h3 id="blogTitle3">3、再输入以下命令将redis-server服务停止。</h3>
<pre>redis-cli <span class="hljs-keyword">shutdown</span></pre>
<h3 id="blogTitle4">4、再输入以下命令删除/usr/local/lib目录下与redis相关的文件。</h3>
<p><span class="hljs-built_in">rm -rf /usr/local/redis* <span class="hljs-comment">#删除redis文件ls /usr/local/redis* #查看redis文件</span></span></p>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/liunaixu/p/17138335.html
頁: [1]
查看完整版本: 银河麒麟V10系统安装Redis