{"id":3220,"date":"2019-01-12T16:15:14","date_gmt":"2019-01-12T08:15:14","guid":{"rendered":"http:\/\/www.menglanglang.cn\/?p=3220"},"modified":"2022-09-16T05:51:56","modified_gmt":"2022-09-15T21:51:56","slug":"%e5%a4%a7%e6%95%b0%e6%8d%ae%e5%ad%a6%e4%b9%a0%e5%88%9d%e7%ba%a7%e5%85%a5%e9%97%a8%e6%95%99%e7%a8%8b%ef%bc%88%e4%ba%8c%ef%bc%89-redis-3-x-%e5%8d%95%e8%8a%82%e7%82%b9%e7%9a%84","status":"publish","type":"post","link":"http:\/\/www.menglanglang.cn\/?p=3220","title":{"rendered":"\u5927\u6570\u636e\u5b66\u4e60\u521d\u7ea7\u5165\u95e8\u6559\u7a0b\uff08\u4e8c\uff09 \u2014\u2014 Redis 3.x \u5355\u8282\u70b9\u7684\u5b89\u88c5\u3001\u542f\u52a8\u548c\u6d4b\u8bd5"},"content":{"rendered":"\n<p>\u5728\u65e5\u5e38\u5f00\u53d1\u4e2d\uff0c\u4e3a\u4e86\u6ee1\u8db3\u7cfb\u7edf\u7684\u53ca\u65f6\u54cd\u5e94\u6027\uff0c\u4e00\u822c\u90fd\u4f1a\u5728\u5f00\u53d1\u4e2d\u4f7f\u7528 Redis \u505a\u7f13\u5b58\uff0c\u8fd9\u7bc7\u4e3b\u8981\u4ecb\u7ecd\u4e0b Redis 3.x \u7248\u672c\u7684\u5b89\u88c5\u3001\u542f\u52a8\u53ca\u6d4b\u8bd5\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e00\u3001\u4e0b\u8f7d Redis \u5b89\u88c5\u5305<\/h3>\n\n\n\n<p>\u8fd9\u91cc\u5c31\u4e0d\u518d\u8d58\u8ff0\uff0c\u672c\u7bc7\u6d4b\u8bd5\u7528\u7684\u7248\u672c\u4e3a\uff1aredis-3.2.9.tar.gz\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e8c\u3001\u4e0a\u4f20\u5b89\u88c5\u5305\u5230\u670d\u52a1\u5668<\/h3>\n\n\n\n<p>\u4e5f\u4e0d\u518d\u8d58\u8ff0\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e09\u3001\u89e3\u538b\u5b89\u88c5\u5305<\/h3>\n\n\n\n<p>\u547d\u4ee4\uff1atar -zxvf redis-3.2.9.tar.gz<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u56db\u3001\u8fdb\u5165\u5b89\u88c5\u5305<\/h3>\n\n\n\n<p>\u547d\u4ee4\uff1acd redis-3.2.9<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e94\u3001\u6307\u5b9a\u5b89\u88c5\u76ee\u5f55\u5e76\u5b89\u88c5<\/h3>\n\n\n\n<p>\u547d\u4ee4\uff1amake PREFIX=\/usr\/redis install<\/p>\n\n\n\n<p>\u5b89\u88c5\u6210\u529f\u540e\uff0c\u53ef\u4ee5\u770b\u5230 \/usr \u4e0b\u81ea\u52a8\u751f\u6210\u4e86 redis \u76ee\u5f55\uff0c\u76ee\u5f55 \/usr\/redis\/bin \u7ed3\u6784\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>.\n\u251c\u2500\u2500 redis-benchmark\n\u251c\u2500\u2500 redis-check-aof\n\u251c\u2500\u2500 redis-check-rdb\n\u251c\u2500\u2500 redis-cli\n\u251c\u2500\u2500 redis-sentinel -> redis-server\n\u2514\u2500\u2500 redis-server\n\n0 directories, 6 files<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u516d\u3001\u62f7\u8d1d\u914d\u7f6e\u6587\u4ef6<\/h3>\n\n\n\n<p>\u4ece\u5b89\u88c5\u5305\u590d\u5236\u914d\u7f6e\u6587\u4ef6&nbsp;redis.conf \u5230&nbsp;\/usr\/redis\/bin \u4e0b<\/p>\n\n\n\n<p>\u547d\u4ee4\uff1acp redis.conf \/usr\/redis\/bin\/<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e03\u3001\u4fee\u6539\u914d\u7f6e\u6587\u4ef6<\/h3>\n\n\n\n<p>\u4fee\u6539\u914d\u7f6e\u6587\u4ef6\uff1a<\/p>\n\n\n\n<p>\u547d\u4ee4\uff1acd \/usr\/redis\/bin\/<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vi redis.conf&nbsp;<\/p>\n\n\n\n<p>\u6bd4\u5982\u4fee\u6539\u7aef\u53e3\uff08\u9ed8\u8ba4\u4e3a6379\uff09\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Accept connections on the specified port, default is 6379 (IANA #815344).\n# If port 0 is specified Redis will not listen on a TCP socket.\nport 6379<\/code><\/pre>\n\n\n\n<p>\u6bd4\u5982\u4fee\u6539\u5bc6\u7801\uff08\u9ed8\u8ba4\u4e3a foobared\uff09\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># requirepass foobared<\/code><\/pre>\n\n\n\n<p>\u518d\u6bd4\u5982\u4fee\u6539\u8fd0\u884c\u65b9\u5f0f\uff08\u9ed8\u8ba4\u4e3a\u524d\u53f0\u8fdb\u7a0b\u8fd0\u884c\uff09\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># By default Redis does not run as a daemon. Use 'yes' if you need it.\n# Note that Redis will write a pid file in \/var\/run\/redis.pid when daemonized.\ndaemonize no<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u516b\u3001\u542f\u52a8 redis \u670d\u52a1<\/h3>\n\n\n\n<p>\u547d\u4ee4\uff1a.\/redis-server redis.conf&nbsp;<\/p>\n\n\n\n<p>\u5982\u679c&nbsp;daemonize \u4e3a no\uff0c\u542f\u52a8\u540e\u6548\u679c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>36201:M 12 Jan 10:35:42.160 * Increased maximum number of open files to 10032 (it was originally set to 1024).\n                _._                                                  \n           _.-``__ ''-._                                             \n      _.-``    `.  `_.  ''-._           Redis 3.2.9 (00000000\/0) 64 bit\n  .-`` .-```.  ```\\\/    _.,_ ''-._                                   \n (    '      ,       .-`  | `,    )     Running in standalone mode\n |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379\n |    `-._   `._    \/     _.-'    |     PID: 36201\n  `-._    `-._  `-.\/  _.-'    _.-'                                   \n |`-._`-._    `-.__.-'    _.-'_.-'|                                  \n |    `-._`-._        _.-'_.-'    |           http:\/\/redis.io        \n  `-._    `-._`-.__.-'_.-'    _.-'                                   \n |`-._`-._    `-.__.-'    _.-'_.-'|                                  \n |    `-._`-._        _.-'_.-'    |                                  \n  `-._    `-._`-.__.-'_.-'    _.-'                                   \n      `-._    `-.__.-'    _.-'                                       \n          `-._        _.-'                                           \n              `-.__.-'                                               \n\n36201:M 12 Jan 10:35:42.177 # WARNING: The TCP backlog setting of 511 cannot be enforced because \/proc\/sys\/net\/core\/somaxconn is set to the lower value of 128.\n36201:M 12 Jan 10:35:42.177 # Server started, Redis version 3.2.9\n36201:M 12 Jan 10:35:42.179 # 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.\n36201:M 12 Jan 10:35:42.180 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > \/sys\/kernel\/mm\/transparent_hugepage\/enabled' as root, and add it to your \/etc\/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.\n36201:M 12 Jan 10:35:42.180 * The server is now ready to accept connections on port 6379\n<\/code><\/pre>\n\n\n\n<p>\u5982\u679c&nbsp;daemonize \u4fee\u6539\u4e3a\u4e86 yes\uff0c\u5219\u4f1a\u5728\u540e\u53f0\u542f\u52a8\u670d\u52a1\uff0c\u770b\u4e0d\u5230\u4e0a\u9762\u7684\u65e5\u5fd7\uff0c\u53ef\u4ee5\u67e5\u770b\u5176\u8fdb\u7a0b\u662f\u5426\u542f\u52a8\u3002<\/p>\n\n\n\n<p>\u547d\u4ee4\uff1aps -ef |grep redis<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root      37040      1  0 10:41 ?        00:00:00 .\/redis-server 127.0.0.1:6379\nroot      37086   1492  0 10:41 pts\/0    00:00:00 grep redis<\/code><\/pre>\n\n\n\n<p>\u5230\u6b64\uff0c\u5355\u70b9\u7684 Redis \u5df2\u5b89\u88c5\u6210\u529f\uff0c\u5982\u679c\u6709\u9519\u8bef\uff0c\u8bf7\u53c2\u8003\u6700\u540e\u7684\u5e38\u89c1\u9519\u8bef\u90e8\u5206\u3002&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e5d\u3001\u7b80\u5355\u6d4b\u8bd5<\/h3>\n\n\n\n<p>\uff081\uff09\u542f\u52a8\u5ba2\u6237\u7aef\u547d\u4ee4<\/p>\n\n\n\n<p>\u547d\u4ee4\uff1a.\/redis-cli<\/p>\n\n\n\n<p>\u53ef\u4ee5\u770b\u5230\u6709\u8f93\u51fa\uff1a127.0.0.1:6379&gt;&nbsp;<\/p>\n\n\n\n<p>\uff082\uff09\u68c0\u6d4b redis \u670d\u52a1\u662f\u5426\u542f\u52a8\u547d\u4ee4<\/p>\n\n\n\n<p>\u547d\u4ee4\uff1a127.0.0.1:6379&gt;&nbsp;ping<\/p>\n\n\n\n<p>\u53ef\u4ee5\u770b\u5230\u6709\u8f93\u51fa\uff1aPONG<\/p>\n\n\n\n<p>\uff083\uff09\u5b58\u503c\u547d\u4ee4<\/p>\n\n\n\n<p>\u547d\u4ee4\uff1a127.0.0.1:6379&gt;&nbsp;set testStr redisok<\/p>\n\n\n\n<p>\u53ef\u4ee5\u770b\u5230\u6709\u8f93\u51fa\uff1aOK<\/p>\n\n\n\n<p>\uff084\uff09\u53d6\u503c<\/p>\n\n\n\n<p>\u547d\u4ee4\uff1a127.0.0.1:6379&gt; get testStr<\/p>\n\n\n\n<p>\u53ef\u4ee5\u770b\u5230\u6709\u8f93\u51fa\u8bbe\u7f6e\u8fc7\u7684\u503c\uff1a\"redisok\"<\/p>\n\n\n\n<p>\uff085\uff09\u5176\u5b83\u547d\u4ee4\u81ea\u884c\u5b66\u4e60\u3001\u6d4b\u8bd5\u3002\u3002\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u5341\u3001\u5b89\u88c5\u8fc7\u7a0b\u51fa\u73b0\u7684\u5e38\u89c1\u9519\u8bef<\/h3>\n\n\n\n<p><strong>\u9519\u8bef\u4e00\uff1a<\/strong>\u5982\u679c\u51fa\u73b0\u9519\u8bef gcc: Command not found \u6216\u8005&nbsp;cc: command not found\uff0c\u65e5\u5fd7\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>make[3]: gcc: Command not found\nmake[3]: *** [net.o] Error 127\nmake[3]: Leaving directory `\/root\/redis-3.2.9\/deps\/hiredis'\nmake[2]: *** [hiredis] Error 2\nmake[2]: Leaving directory `\/root\/redis-3.2.9\/deps'\nmake[1]: [persist-settings] Error 2 (ignored)\n    CC adlist.o\n\/bin\/sh: cc: command not found\nmake[1]: *** [adlist.o] Error 127\nmake[1]: Leaving directory `\/root\/redis-3.2.9\/src'\nmake: *** [install] Error 2<\/code><\/pre>\n\n\n\n<p>\u5219\u8bf4\u660e\u5f53\u524d\u7684\u670d\u52a1\u5668\u6ca1\u6709\u7f16\u8bd1\u73af\u5883\uff0c\u9700\u8981\u5b89\u88c5\uff0c\u64cd\u4f5c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<p>\u547d\u4ee4\uff1ayum install gcc-c++<\/p>\n\n\n\n<p>\u770b\u5230\u5982\u4e0b\u65e5\u5fd7\uff0c\u8bf4\u660e\u5b89\u88c5\u6210\u529f\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Installed:\n  gcc-c++.x86_64 0:4.4.7-23.el6                                                                                                                                            \n\nDependency Installed:\n  cloog-ppl.x86_64 0:0.15.7-1.2.el6          cpp.x86_64 0:4.4.7-23.el6                       gcc.x86_64 0:4.4.7-23.el6          glibc-devel.x86_64 0:2.12-1.212.el6       \n  glibc-headers.x86_64 0:2.12-1.212.el6      kernel-headers.x86_64 0:2.6.32-754.6.3.el6      libgomp.x86_64 0:4.4.7-23.el6      libstdc++-devel.x86_64 0:4.4.7-23.el6     \n  mpfr.x86_64 0:2.4.1-6.el6                  ppl.x86_64 0:0.10.2-11.el6                     \n\nDependency Updated:\n  glibc.x86_64 0:2.12-1.212.el6           glibc-common.x86_64 0:2.12-1.212.el6           libgcc.x86_64 0:4.4.7-23.el6           libstdc++.x86_64 0:4.4.7-23.el6          \n\nComplete!<\/code><\/pre>\n\n\n\n<p><strong>\u9519\u8bef\u4e8c\uff1a<\/strong>\u5982\u679c\u51fa\u73b0\u9519\u8bef Newer version of jemalloc required\uff0c\u65e5\u5fd7\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd src &amp;&amp; make install\nmake[1]: Entering directory `\/root\/redis-3.2.9\/src'\n    CC adlist.o\nIn file included from adlist.c:34:\nzmalloc.h:50:31: error: jemalloc\/jemalloc.h: No such file or directory\nzmalloc.h:55:2: error: #error \"Newer version of jemalloc required\"\nmake[1]: *** [adlist.o] Error 1\nmake[1]: Leaving directory `\/root\/redis-3.2.9\/src'\nmake: *** [install] Error 2<\/code><\/pre>\n\n\n\n<p>\u5219\u8bf4\u660e\u5f53\u524d\u670d\u52a1\u5668\u53ef\u80fd\u6ca1\u6709\u5b89\u88c5&nbsp;jemalloc\uff0c\u5148\u5b89\u88c5\u4e00\u4e0b\uff1a<\/p>\n\n\n\n<p>\u547d\u4ee4\uff1ayum install jemalloc<\/p>\n\n\n\n<p>\u5982\u679c\u5df2\u7ecf\u5b89\u88c5\u4e86\uff0c\u53ef\u4ee5\u6267\u884c\u4e0b\u9762\u547d\u4ee4\uff1a<\/p>\n\n\n\n<p>\u547d\u4ee4\uff1amake MALLOC=libc<\/p>\n\n\n\n<p><strong>\u9519\u8bef\u4e09\uff1a<\/strong>\u5ba2\u6237\u7aef\u8f93\u5165\u547d\u4ee4\u51fa\u73b0\u9519\u8bef&nbsp;(error) NOAUTH Authentication required. \u600e\u4e48\u529e\uff1f<\/p>\n\n\n\n<p>\u5728\u542f\u52a8\u5ba2\u6237\u7aef\u540e\uff0c\u5982\u679c\u8f93\u5165\u4efb\u4f55\u547d\u4ee4\uff0c\u63d0\u793a\u8fd9\u4e2a\u9519\u8bef\uff0c\u5e94\u8be5\u662f\u8ba4\u8bc1\u95ee\u9898\uff0c\u662f redis \u8bbe\u7f6e\u4e86\u8ba4\u8bc1\u5bc6\u7801\uff0c\u8f93\u5165\u5bc6\u7801\u540e\u5c31\u4e0d\u62a5\u9519\u4e86\u3002<\/p>\n\n\n\n<p>\u547d\u4ee4\uff1aauth \"\u5bc6\u7801\"<\/p>\n\n\n\n<p>\u56de\u8f66\u540e\u4f1a\u63d0\u793a OK \u4fe1\u606f\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5728\u65e5\u5e38\u5f00\u53d1\u4e2d\uff0c\u4e3a\u4e86\u6ee1\u8db3\u7cfb\u7edf\u7684\u53ca\u65f6\u54cd\u5e94\u6027\uff0c\u4e00\u822c\u90fd\u4f1a\u5728\u5f00\u53d1\u4e2d\u4f7f\u7528 Redis \u505a\u7f13\u5b58\uff0c\u8fd9\u7bc7\u4e3b\u8981\u4ecb\u7ecd\u4e0b Redis  [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[803],"tags":[713,714,711,877,183,214],"class_list":["post-3220","post","type-post","status-publish","format-standard","hentry","category-redis","tag-redis","tag-714","tag-711","tag-877","tag-183","tag-214"],"_links":{"self":[{"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=\/wp\/v2\/posts\/3220","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3220"}],"version-history":[{"count":2,"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=\/wp\/v2\/posts\/3220\/revisions"}],"predecessor-version":[{"id":4114,"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=\/wp\/v2\/posts\/3220\/revisions\/4114"}],"wp:attachment":[{"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3220"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3220"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}