{"id":201428,"date":"2025-05-10T11:52:43","date_gmt":"2025-05-10T03:52:43","guid":{"rendered":"https:\/\/server.hk\/cnblog\/201428\/"},"modified":"2025-05-10T11:52:43","modified_gmt":"2025-05-10T03:52:43","slug":"%e6%8e%8c%e6%8f%a1%e8%bf%9915%e7%82%b9%ef%bc%8credis%e5%85%a5%e9%97%a8%e5%b0%b1%e5%a4%9f%e7%94%a8%e4%ba%86%ef%bc%81","status":"publish","type":"post","link":"https:\/\/server.hk\/cnblog\/201428\/","title":{"rendered":"\u638c\u63e1\u8fd915\u70b9\uff0cRedis\u5165\u95e8\u5c31\u591f\u7528\u4e86\uff01"},"content":{"rendered":"<p><b><\/b> <\/p>\n<h1>\u638c\u63e1\u8fd915\u70b9\uff0cRedis\u5165\u95e8\u5c31\u591f\u7528\u4e86\uff01<\/h1>\n<p><span style=\"cursor: pointer\"><i><\/i>\u6536\u85cf<\/span> <\/p>\n<p>IT\u884c\u4e1a\u76f8\u5bf9\u4e8e\u4e00\u822c\u4f20\u7edf\u884c\u4e1a\uff0c\u53d1\u5c55\u66f4\u65b0\u901f\u5ea6\u66f4\u5feb\uff0c\u4e00\u65e6\u505c\u6b62\u4e86\u5b66\u4e60\uff0c\u5f88\u5feb\u5c31\u4f1a\u88ab\u884c\u4e1a\u6240\u6dd8\u6c70\u3002\u6240\u4ee5\u6211\u4eec\u9700\u8981\u8e0f\u8e0f\u5b9e\u5b9e\u7684\u4e0d\u65ad\u5b66\u4e60\uff0c\u7cbe\u8fdb\u81ea\u5df1\u7684\u6280\u672f\uff0c\u5c24\u5176\u662f\u521d\u5b66\u8005\u3002\u4eca\u5929golang\u5b66\u4e60\u7f51\u7ed9\u5927\u5bb6\u6574\u7406\u4e86\u300a\u638c\u63e1\u8fd915\u70b9\uff0cRedis\u5165\u95e8\u5c31\u591f\u7528\u4e86\uff01\u300b\uff0c\u804a\u804aRedis\u3001\u6570\u636e\u5e93\u3001\u5f00\u6e90\uff0c\u6211\u4eec\u4e00\u8d77\u6765\u770b\u770b\u5427\uff01<\/p>\n<p>&nbsp;<strong>1\u3001Redis\u7b80\u4ecb<\/strong><\/p>\n<p>REmote DIctionary Server(Redis)\u662f\u4e00\u4e2a\u7531Salvatore Sanfilippo\u5199\u7684key-value\u5b58\u50a8\u7cfb\u7edf\u3002Redis\u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u4f7f\u7528ANSI C\u8bed\u8a00\u7f16\u5199\u3001\u9075\u5b88BSD\u534f\u8bae\u3001\u652f\u6301\u7f51\u7edc\u3001\u53ef\u57fa\u4e8e\u5185\u5b58\u4ea6\u53ef\u6301\u4e45\u5316\u7684\u65e5\u5fd7\u578b\u3001Key-Value\u6570\u636e\u5e93\uff0c\u5e76\u63d0\u4f9b\u591a\u79cd\u8bed\u8a00\u7684API\u3002\u5b83\u901a\u5e38\u88ab\u79f0\u4e3a\u6570\u636e\u7ed3\u6784\u670d\u52a1\u5668\uff0c\u56e0\u4e3a\u503c\uff08value\uff09\u53ef\u4ee5\u662f \u5b57\u7b26\u4e32(String), \u54c8\u5e0c(Map), \u5217\u8868(list), \u96c6\u5408(sets) \u548c \u6709\u5e8f\u96c6\u5408(sorted sets)\u7b49\u7c7b\u578b\u3002<\/p>\n<p>\u5927\u5bb6\u90fd\u77e5\u9053\u4e86redis\u662f\u57fa\u4e8ekey-value\u7684no sql\u6570\u636e\u5e93\uff0c\u56e0\u6b64\uff0c\u5148\u6765\u4e86\u89e3\u4e00\u4e0b\u5173\u4e8ekey\u76f8\u5173\u7684\u77e5\u8bc6\u70b9<\/p>\n<p>&nbsp; &nbsp; 1\u3001\u4efb\u4f55\u4e8c\u8fdb\u5236\u7684\u5e8f\u5217\u90fd\u53ef\u4ee5\u4f5c\u4e3akey\u4f7f\u7528<\/p>\n<p>&nbsp; &nbsp; 2\u3001Redis\u6709\u7edf\u4e00\u7684\u89c4\u5219\u6765\u8bbe\u8ba1key<\/p>\n<p>&nbsp; &nbsp; 3\u3001\u5bf9key-value\u5141\u8bb8\u7684\u6700\u5927\u957f\u5ea6\u662f512MB&nbsp;<\/p>\n<p><strong>2\u3001\u652f\u6301\u7684\u8bed\u8a00<\/strong><\/p>\n<\/p>\n<ol>\n<li>\n<p>ActionScript&nbsp;Bash&nbsp;&nbsp;C&nbsp;&nbsp;C#&nbsp;&nbsp;C++&nbsp;&nbsp;Clojure&nbsp;Common&nbsp;LispCrystal&nbsp;&nbsp;D&nbsp;&nbsp;Dart&nbsp;&nbsp;Elixir&nbsp;&nbsp;emacs&nbsp;&nbsp;lisp&nbsp;&nbsp;Erlang&nbsp;&nbsp;Fancy&nbsp;&nbsp;gawk&nbsp;&nbsp;GNU&nbsp;Prolog&nbsp;&nbsp;Go&nbsp;&nbsp;Haskell&nbsp;&nbsp;Haxe&nbsp;&nbsp;Io&nbsp;Java&nbsp;&nbsp;Javascript&nbsp;&nbsp;Julia&nbsp;&nbsp;Lua&nbsp;&nbsp;Matlab&nbsp;&nbsp;mruby&nbsp;&nbsp;Nim&nbsp;&nbsp;Node.js&nbsp;&nbsp;Objective-C&nbsp;&nbsp;OCaml&nbsp;Pascal&nbsp;&nbsp;Perl&nbsp;&nbsp;PHP&nbsp;&nbsp;Pure&nbsp;Data&nbsp;&nbsp;Python&nbsp;&nbsp;R&nbsp;&nbsp;Racket&nbsp;&nbsp;Rebol&nbsp;&nbsp;Ruby&nbsp;&nbsp;Rust&nbsp;Scala&nbsp;&nbsp;Scheme&nbsp;&nbsp;Smalltalk&nbsp;&nbsp;Swift&nbsp;&nbsp;Tcl&nbsp;&nbsp;VB&nbsp;&nbsp;VCL&nbsp;<\/p>\n<\/li>\n<\/ol>\n<p><strong>3\u3001Redis\u7684\u5e94\u7528\u573a\u666f\u5230\u5e95\u6709\u54ea\u4e9b\uff1f\uff1f<\/strong><\/p>\n<p>&nbsp; &nbsp; 1\u3001\u6700\u5e38\u7528\u7684\u5c31\u662f\u4f1a\u8bdd\u7f13\u5b58<\/p>\n<p>&nbsp; &nbsp; 2\u3001\u6d88\u606f\u961f\u5217\uff0c\u6bd4\u5982\u652f\u4ed8<\/p>\n<p>&nbsp; &nbsp; 3\u3001\u6d3b\u52a8\u6392\u884c\u699c\u6216\u8ba1\u6570<\/p>\n<p>&nbsp; &nbsp; 4\u3001\u53d1\u5e03\u3001\u8ba2\u9605\u6d88\u606f(\u6d88\u606f\u901a\u77e5)<\/p>\n<p>&nbsp; &nbsp; 5\u3001\u5546\u54c1\u5217\u8868\u3001\u8bc4\u8bba\u5217\u8868\u7b49<\/p>\n<p><strong>4\u3001Redis\u5b89\u88c5<\/strong><\/p>\n<p>\u5173\u4e8eredis\u5b89\u88c5\u4e0e\u76f8\u5173\u7684\u77e5\u8bc6\u70b9\u4ecb\u7ecd\u8bf7\u53c2\u8003 <\/p>\n<p>\u5b89\u88c5\u7684\u5927\u6982\u6b65\u9aa4\u5982\u4e0b\uff1a<\/p>\n<p>Redis\u662fc\u8bed\u8a00\u5f00\u53d1\u7684\uff0c\u5b89\u88c5redis\u9700\u8981c\u8bed\u8a00\u7684\u7f16\u8bd1\u73af\u5883<\/p>\n<p>\u5982\u679c\u6ca1\u6709gcc\u9700\u8981\u5728\u7ebf\u5b89\u88c5\uff1ayum install gcc-c++<\/p>\n<p>\u7b2c\u4e00\u6b65\uff1a\u83b7\u53d6\u6e90\u7801\u5305\uff1awget <\/p>\n<p>\u7b2c\u4e8c\u6b65\uff1a\u89e3\u538b\u7f29redis\uff1atar zxvf redis-3.0.0.tar.gz<\/p>\n<p>\u7b2c\u4e09\u6b65\uff1a\u7f16\u8bd1\u3002\u8fdb\u5165redis\u6e90\u7801\u76ee\u5f55(cd redis-3.0.0)\u3002\u6267\u884c make<\/p>\n<p>\u7b2c\u56db\u6b65\uff1a\u5b89\u88c5\u3002make install PREFIX=\/usr\/local\/redis<\/p>\n<p>PREFIX\u53c2\u6570\u6307\u5b9aredis\u7684\u5b89\u88c5\u76ee\u5f55<\/p>\n<p><strong>5\u3001Redis\u6570\u636e\u7c7b\u578b<\/strong><\/p>\n<p>Redis\u4e00\u5171\u652f\u6301\u4e94\u79cd\u6570\u636e\u7c7b\u578b<\/p>\n<p>1\u3001string(\u5b57\u7b26\u4e32)<\/p>\n<p>2\u3001hash(\u54c8\u5e0c)<\/p>\n<p>3\u3001list(\u5217\u8868)<\/p>\n<p>4\u3001set(\u96c6\u5408)<\/p>\n<p>5\u3001zset\uff08sorted set \u6709\u5e8f\u96c6\u5408\uff09<\/p>\n<p><strong>string(\u5b57\u7b26\u4e32)<\/strong><\/p>\n<p>\u5b83\u662fredis\u6700\u57fa\u672c\u7684\u6570\u636e\u7c7b\u578b\uff0c\u4e00\u4e2akey\u5bf9\u5e94\u4e00\u4e2avalue\uff0c\u9700\u8981\u6ce8\u610f\u662f\u4e00\u4e2a\u952e\u503c\u6700\u5927\u5b58\u50a8512MB\u3002&nbsp;<\/p>\n<\/p>\n<ol>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;set&nbsp;key&nbsp;&#8220;hello&nbsp;world&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>OK&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;get&nbsp;key&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>&#8220;hello&nbsp;world&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;getset&nbsp;key&nbsp;&#8220;nihao&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>&#8220;hello&nbsp;world&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;mset&nbsp;key1&nbsp;&#8220;hi&#8221;&nbsp;key2&nbsp;&#8220;nihao&#8221;&nbsp;key3&nbsp;&#8220;hello&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>OK&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;get&nbsp;key1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>&#8220;hi&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;get&nbsp;key2&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>&#8220;nihao&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;get&nbsp;key3&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>&#8220;hello&#8221;&nbsp;<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u76f8\u5173\u547d\u4ee4\u4ecb\u7ecd<\/strong><\/p>\n<p>set \u4e3a\u4e00\u4e2aKey\u8bbe\u7f6evalue\uff08\u503c\uff09<\/p>\n<p>get \u83b7\u5f97\u67d0\u4e2akey\u5bf9\u5e94\u7684value\uff08\u503c\uff09<\/p>\n<p>getset \u4e3a\u4e00\u4e2aKey\u8bbe\u7f6evalue\uff08\u503c\uff09\u5e76\u8fd4\u56de\u5bf9\u5e94\u7684\u503c<\/p>\n<p>mset \u4e3a\u591a\u4e2akey\u8bbe\u7f6evalue\uff08\u503c\uff09<\/p>\n<p><strong>hash(\u54c8\u5e0c)<\/strong><\/p>\n<p>redis hash\u662f\u4e00\u4e2a\u952e\u503c\u5bf9\u7684\u96c6\u5408\uff0c \u662f\u4e00\u4e2astring\u7c7b\u578b\u7684field\u548cvalue\u7684\u6620\u5c04\u8868\uff0c\u9002\u5408\u7528\u4e8e\u5b58\u50a8\u5bf9\u8c61&nbsp;<\/p>\n<\/p>\n<ol>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;hset&nbsp;redishash&nbsp;1&nbsp;&#8220;001&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;hget&nbsp;redishash&nbsp;1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>&#8220;001&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;hmset&nbsp;redishash&nbsp;1&nbsp;&#8220;001&#8221;&nbsp;2&nbsp;&#8220;002&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>OK&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;hget&nbsp;redishash&nbsp;1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>&#8220;001&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;hget&nbsp;redishash&nbsp;2&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>&#8220;002&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;hmget&nbsp;redishash&nbsp;1&nbsp;2&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>1)&nbsp;&#8220;001&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>2)&nbsp;&#8220;002&#8221;&nbsp;<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u76f8\u5173\u547d\u4ee4\u4ecb\u7ecd<\/strong><\/p>\n<p>hset \u5c06Key\u5bf9\u5e94\u7684hash\u4e2d\u7684field\u914d\u7f6e\u4e3avalue\uff0c\u5982\u679chash\u4e0d\u5b58\u5219\u81ea\u52a8\u521b\u5efa\uff0c<\/p>\n<p>hget \u83b7\u5f97\u67d0\u4e2ahash\u4e2d\u7684field\u914d\u7f6e\u7684\u503c<\/p>\n<p>hmset \u6279\u91cf\u914d\u7f6e\u540c\u4e00\u4e2ahash\u4e2d\u7684\u591a\u4e2afield\u503c<\/p>\n<p>hmget \u6279\u91cf\u83b7\u5f97\u540c\u4e00\u4e2ahash\u4e2d\u7684\u591a\u4e2afield\u503c<\/p>\n<p><strong>list(\u5217\u8868)<\/strong><\/p>\n<p>\u662fredis\u7b80\u5355\u7684\u5b57\u7b26\u4e32\u5217\u8868\uff0c\u5b83\u6309\u63d2\u5165\u987a\u5e8f\u6392\u5e8f&nbsp;<\/p>\n<\/p>\n<ol>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;lpush&nbsp;word&nbsp;&nbsp;hi&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;lpush&nbsp;word&nbsp;&nbsp;hello&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;2&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;rpush&nbsp;word&nbsp;&nbsp;world&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;3&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;lrange&nbsp;word&nbsp;0&nbsp;2&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>1)&nbsp;&#8220;hello&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>2)&nbsp;&#8220;hi&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>3)&nbsp;&#8220;world&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;llen&nbsp;word&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;3&nbsp;<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u76f8\u5173\u547d\u4ee4\u4ecb\u7ecd<\/strong><\/p>\n<p>lpush \u5411\u6307\u5b9a\u7684\u5217\u8868\u5de6\u4fa7\u63d2\u5165\u5143\u7d20\uff0c\u8fd4\u56de\u63d2\u5165\u540e\u5217\u8868\u7684\u957f\u5ea6<\/p>\n<p>rpush \u5411\u6307\u5b9a\u7684\u5217\u8868\u53f3\u4fa7\u63d2\u5165\u5143\u7d20\uff0c\u8fd4\u56de\u63d2\u5165\u540e\u5217\u8868\u7684\u957f\u5ea6<\/p>\n<p>llen&nbsp; \u8fd4\u56de\u6307\u5b9a\u5217\u8868\u7684\u957f\u5ea6<\/p>\n<p>lrange \u8fd4\u56de\u6307\u5b9a\u5217\u8868\u4e2d\u6307\u5b9a\u8303\u56f4\u7684\u5143\u7d20\u503c<\/p>\n<p><strong>set(\u96c6\u5408)<\/strong><\/p>\n<p>\u662fstring\u7c7b\u578b\u7684\u65e0\u5e8f\u96c6\u5408\uff0c\u4e5f\u4e0d\u53ef\u91cd\u590d&nbsp;<\/p>\n<\/p>\n<ol>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;sadd&nbsp;redis&nbsp;redisset&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;sadd&nbsp;redis&nbsp;redisset1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;sadd&nbsp;redis&nbsp;redisset2&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;smembers&nbsp;redis&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>1)&nbsp;&#8220;redisset1&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>2)&nbsp;&#8220;redisset&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>3)&nbsp;&#8220;redisset2&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;sadd&nbsp;redis&nbsp;redisset2&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;0&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;smembers&nbsp;redis&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>1)&nbsp;&#8220;redisset1&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>2)&nbsp;&#8220;redisset&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>3)&nbsp;&#8220;redisset2&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;smembers&nbsp;redis&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>1)&nbsp;&#8220;redisset1&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>2)&nbsp;&#8220;redisset3&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>3)&nbsp;&#8220;redisset&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>4)&nbsp;&#8220;redisset2&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;srem&nbsp;redis&nbsp;redisset&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;smembers&nbsp;redis&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>1)&nbsp;&#8220;redisset1&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>2)&nbsp;&#8220;redisset3&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>3)&nbsp;&#8220;redisset2&#8221;&nbsp;<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u76f8\u5173\u547d\u4ee4\u4ecb\u7ecd<\/strong><\/p>\n<p>sadd \u6dfb\u52a0\u4e00\u4e2astring\u5143\u7d20\u5230key\u5bf9\u5e94\u7684set\u96c6\u5408\u4e2d\uff0c\u6210\u529f\u8fd4\u56de1\uff0c\u5982\u679c\u5143\u7d20\u5b58\u5728\u8fd4\u56de0<\/p>\n<p>smembers \u8fd4\u56de\u6307\u5b9a\u7684\u96c6\u5408\u4e2d\u6240\u6709\u7684\u5143\u7d20<\/p>\n<p>srem \u5220\u9664\u6307\u5b9a\u96c6\u5408\u7684\u67d0\u4e2a\u5143\u7d20<\/p>\n<p><strong>zset\uff08sorted set \u6709\u5e8f\u96c6\u5408\uff09<\/strong><\/p>\n<p>\u662fstring\u7c7b\u578b\u7684\u6709\u5e8f\u96c6\u5408\uff0c\u4e5f\u4e0d\u53ef\u91cd\u590d<\/p>\n<p>sorted set\u4e2d\u7684\u6bcf\u4e2a\u5143\u7d20\u90fd\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u5206\u6570\uff0c\u6839\u636e\u5206\u6570\u5bf9\u5143\u7d20\u8fdb\u884c\u5347\u5e8f\u6392\u5e8f\uff0c\u5982\u679c\u591a\u4e2a\u5143\u7d20\u6709\u76f8\u540c\u7684\u5206\u6570\uff0c\u5219\u4ee5\u5b57\u5178\u5e8f\u8fdb\u884c\u5347\u5e8f\u6392\u5e8f\uff0csorted set \u56e0\u6b64\u975e\u5e38\u9002\u5408\u5b9e\u73b0\u6392\u540d&nbsp;<\/p>\n<\/p>\n<ol>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;zadd&nbsp;nosql&nbsp;0&nbsp;001&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;zadd&nbsp;nosql&nbsp;0&nbsp;002&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;zadd&nbsp;nosql&nbsp;0&nbsp;003&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;zcount&nbsp;nosql&nbsp;0&nbsp;0&nbsp;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;3&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;zcount&nbsp;nosql&nbsp;0&nbsp;3&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;3&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;zrem&nbsp;nosql&nbsp;002&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;zcount&nbsp;nosql&nbsp;0&nbsp;3&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;2&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;zscore&nbsp;nosql&nbsp;003&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>&#8220;0&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;zrangebyscore&nbsp;nosql&nbsp;0&nbsp;10&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>1)&nbsp;&#8220;001&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>2)&nbsp;&#8220;003&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;zadd&nbsp;nosql&nbsp;1&nbsp;003&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;0&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;zadd&nbsp;nosql&nbsp;1&nbsp;004&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;1&nbsp;<\/p>\n<\/li>\n<li>\n<p>&nbsp;127.0.0.1:6379<span>&gt;<\/span>&nbsp;zrangebyscore&nbsp;nosql&nbsp;0&nbsp;10&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>1)&nbsp;&#8220;001&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>2)&nbsp;&#8220;003&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>3)&nbsp;&#8220;004&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;zadd&nbsp;nosql&nbsp;3&nbsp;005&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;zadd&nbsp;nosql&nbsp;2&nbsp;006&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;zrangebyscore&nbsp;nosql&nbsp;0&nbsp;10&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>1)&nbsp;&#8220;001&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>2)&nbsp;&#8220;003&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>3)&nbsp;&#8220;004&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>4)&nbsp;&#8220;006&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>5)&nbsp;&#8220;005&#8221;&nbsp;<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u76f8\u5173\u547d\u4ee4\u4ecb\u7ecd<\/strong><\/p>\n<p>zadd&nbsp; \u5411\u6307\u5b9a\u7684sorteset\u4e2d\u6dfb\u52a01\u4e2a\u6216\u591a\u4e2a\u5143\u7d20<\/p>\n<p>zrem&nbsp; \u4ece\u6307\u5b9a\u7684sorteset\u4e2d\u5220\u96641\u4e2a\u6216\u591a\u4e2a\u5143\u7d20<\/p>\n<p>zcount \u67e5\u770b\u6307\u5b9a\u7684sorteset\u4e2d\u6307\u5b9a\u5206\u6570\u8303\u56f4\u5185\u7684\u5143\u7d20\u6570\u91cf<\/p>\n<p>zscore \u67e5\u770b\u6307\u5b9a\u7684sorteset\u4e2d\u6307\u5b9a\u5206\u6570\u7684\u5143\u7d20<\/p>\n<p>zrangebyscore \u67e5\u770b\u6307\u5b9a\u7684sorteset\u4e2d\u6307\u5b9a\u5206\u6570\u8303\u56f4\u5185\u7684\u6240\u6709\u5143\u7d20<\/p>\n<p><strong>6\u3001\u952e\u503c\u76f8\u5173\u7684\u547d\u4ee4<\/strong>&nbsp;<\/p>\n<\/p>\n<ol>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;exists&nbsp;key&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;exists&nbsp;key1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;exists&nbsp;key100&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;0&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;get&nbsp;key&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>&#8220;nihao,hello&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;get&nbsp;key1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>&#8220;hi&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;del&nbsp;key1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;get&nbsp;key1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(nil)&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;rename&nbsp;key&nbsp;key0&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>OK&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;get&nbsp;key(nil)&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;get&nbsp;key0&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>&#8220;nihao,hello&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;type&nbsp;key0&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>string&nbsp;<\/p>\n<\/li>\n<\/ol>\n<p>exists&nbsp; &nbsp; &nbsp; <strong>&nbsp;#\u786e\u8ba4key\u662f\u5426\u5b58\u5728<\/strong><\/p>\n<p>del&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<strong>#\u5220\u9664key<\/strong><\/p>\n<p>expire&nbsp; &nbsp; &nbsp; <strong>&nbsp;#\u8bbe\u7f6eKey\u8fc7\u671f\u65f6\u95f4(\u5355\u4f4d\u79d2)<\/strong><\/p>\n<p>persist&nbsp; &nbsp; &nbsp;<strong>#\u79fb\u9664Key\u8fc7\u671f\u65f6\u95f4\u7684\u914d\u7f6e<\/strong><\/p>\n<p>rename&nbsp; &nbsp; <strong>&nbsp;#\u91cd\u547d\u540dkey<\/strong><\/p>\n<p>type&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<strong>#\u8fd4\u56de\u503c\u7684\u7c7b\u578b&nbsp;<\/strong><\/p>\n<p><strong>7\u3001Redis\u670d\u52a1\u76f8\u5173\u7684\u547d\u4ee4<\/strong>&nbsp;<\/p>\n<\/p>\n<ol>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;select&nbsp;0&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>OK&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;info&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>#&nbsp;Server&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>redis_version:3.0.6&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>redis_git_sha1:00000000&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>redis_git_dirty:0&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>redis_build_id:347e3eeef5029f3&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>redis_mode:standalone&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>os:Linux&nbsp;3.10.0-693.el7.x86_64&nbsp;x86_64&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>arch_bits:64&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>multiplexing_api:epoll&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>gcc_version:4.8.5&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>process_id:31197&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>run_id:8b6ec6ad5035f5df0b94454e199511084ac6fb12&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>tcp_port:6379&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>uptime_in_seconds:8514&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>uptime_in_days:0&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>hz:10&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>lru_clock:14015928&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>config_file:\/usr\/local\/redis\/redis.conf&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-\u7701\u7565N\u884c&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;CONFIG&nbsp;GET&nbsp;0&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(empty&nbsp;list&nbsp;or&nbsp;set)&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;CONFIG&nbsp;GET&nbsp;15&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(empty&nbsp;list&nbsp;or&nbsp;set)&nbsp;<\/p>\n<\/li>\n<\/ol>\n<p>slect&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<strong>#\u9009\u62e9\u6570\u636e\u5e93(\u6570\u636e\u5e93\u7f16\u53f70-15)<\/strong><\/p>\n<p>quit&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>&nbsp;#\u9000\u51fa\u8fde\u63a5<\/strong><\/p>\n<p>info&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<strong>#\u83b7\u5f97\u670d\u52a1\u7684\u4fe1\u606f\u4e0e\u7edf\u8ba1<\/strong><\/p>\n<p>monitor&nbsp; &nbsp; &nbsp; &nbsp;<strong>#\u5b9e\u65f6\u76d1\u63a7<\/strong><\/p>\n<p>config get&nbsp; &nbsp;<strong>#\u83b7\u5f97\u670d\u52a1\u914d\u7f6e<\/strong><\/p>\n<p>flushdb&nbsp; &nbsp; &nbsp; &nbsp;<strong>#\u5220\u9664\u5f53\u524d\u9009\u62e9\u7684\u6570\u636e\u5e93\u4e2d\u7684key<\/strong><\/p>\n<p>flushall&nbsp; &nbsp; &nbsp; &nbsp;<strong>#\u5220\u9664\u6240\u6709\u6570\u636e\u5e93\u4e2d\u7684key<\/strong>&nbsp;<\/p>\n<p><strong>8\u3001Redis\u7684\u53d1\u5e03\u4e0e\u8ba2\u9605<\/strong><\/p>\n<p>Redis\u53d1\u5e03\u4e0e\u8ba2\u9605(pub\/sub)\u662f\u5b83\u7684\u4e00\u79cd\u6d88\u606f\u901a\u4fe1\u6a21\u5f0f\uff0c\u4e00\u65b9\u53d1\u9001\u4fe1\u606f\uff0c\u4e00\u65b9\u63a5\u6536\u4fe1\u606f\u3002<\/p>\n<p>\u4e0b\u56fe\u662f\u4e09\u4e2a\u5ba2\u6237\u7aef\u540c\u65f6\u8ba2\u9605\u540c\u4e00\u4e2a\u9891\u9053<\/p>\n<\/p>\n<p>\u4e0b\u56fe\u662f\u6709\u65b0\u4fe1\u606f\u53d1\u9001\u7ed9\u9891\u90531\u65f6\uff0c\u5c31\u4f1a\u5c06\u6d88\u606f\u53d1\u9001\u7ed9\u8ba2\u9605\u5b83\u7684\u4e09\u4e2a\u5ba2\u6237\u7aef<\/p>\n<\/p>\n<p><strong>9\u3001Redis\u4e8b\u52a1<\/strong><\/p>\n<p>Redis\u4e8b\u52a1\u53ef\u4ee5\u4e00\u6b21\u6267\u884c\u591a\u6761\u547d\u4ee4<\/p>\n<p>1\u3001\u53d1\u9001exec\u547d\u4ee4\u524d\u653e\u5165\u961f\u5217\u7f13\u5b58\uff0c\u7ed3\u675f\u4e8b\u52a1<\/p>\n<p>2\u3001\u6536\u5230exec\u547d\u4ee4\u540e\u6267\u884c\u4e8b\u52a1\u64cd\u4f5c\uff0c\u5982\u679c\u67d0\u4e00\u547d\u4ee4\u6267\u884c\u5931\u8d25\uff0c\u5176\u5b83\u547d\u4ee4\u4ecd\u53ef\u7ee7\u7eed\u6267\u884c<\/p>\n<p>&nbsp;3\u3001\u4e00\u4e2a\u4e8b\u52a1\u6267\u884c\u7684\u8fc7\u7a0b\u4e2d\uff0c\u5176\u5b83\u5ba2\u6237\u7aef\u63d0\u4ea4\u7684\u8bf7\u6c42\u4e0d\u4f1a\u88ab\u63d2\u5165\u5230\u4e8b\u52a1\u6267\u884c\u7684\u547d\u4ee4\u5217\u8868\u4e2d<\/p>\n<p><strong>\u4e00\u4e2a\u4e8b\u52a1\u7ecf\u5386\u4e09\u4e2a\u9636\u6bb5<\/strong><\/p>\n<p>\u5f00\u59cb\u4e8b\u52a1(\u547d\u4ee4:multi)<\/p>\n<p>\u547d\u4ee4\u6267\u884c<\/p>\n<p>\u7ed3\u675f\u4e8b\u52a1(\u547d\u4ee4:exec)&nbsp;<\/p>\n<\/p>\n<ol>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;MULTI&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>OK&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;set&nbsp;key&nbsp;key1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>QUEUED&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;get&nbsp;key&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>QUEUED&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;rename&nbsp;key&nbsp;key001&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>QUEUED&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;exec&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>1)&nbsp;OK&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>2)&nbsp;&#8220;key1&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>3)&nbsp;OK&nbsp;<\/p>\n<\/li>\n<\/ol>\n<p><strong>10\u3001Redis\u5b89\u5168\u914d\u7f6e<\/strong><\/p>\n<p>\u53ef\u4ee5\u901a\u8fc7\u4fee\u6539\u914d\u7f6e\u6587\u4ef6\u8bbe\u5907\u5bc6\u7801\u53c2\u6570\u6765\u63d0\u9ad8\u5b89\u5168\u6027<\/p>\n<p><strong>&nbsp;#requirepass foobared<\/strong><\/p>\n<p>\u53bb\u6389\u6ce8\u91ca#\u53f7\u5c31\u53ef\u4ee5\u914d\u7f6e\u5bc6\u7801<\/p>\n<p><strong>\u6ca1\u6709\u914d\u7f6e\u5bc6\u7801\u7684\u60c5\u51b5\u4e0b\u67e5\u8be2\u5982\u4e0b<\/strong>&nbsp;<\/p>\n<\/p>\n<ol>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;CONFIG&nbsp;GET&nbsp;requirepass&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>1)&nbsp;&#8220;requirepass&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>2)&nbsp;&#8220;&#8221;&nbsp;<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u914d\u7f6e\u5bc6\u7801\u4e4b\u540e\uff0c\u5c31\u9700\u8981\u8fdb\u884c\u8ba4\u8bc1<\/strong>&nbsp;<\/p>\n<\/p>\n<ol>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;CONFIG&nbsp;GET&nbsp;requirepass&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(error)&nbsp;NOAUTH&nbsp;Authentication&nbsp;required.&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;AUTH&nbsp;foobared&nbsp;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>#\u8ba4\u8bc1OK&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;CONFIG&nbsp;GET&nbsp;requirepass&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>1)&nbsp;&#8220;requirepass&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>2)&nbsp;&#8220;foobared&#8221;&nbsp;<\/p>\n<\/li>\n<\/ol>\n<p><strong>11\u3001Redis\u6301\u4e45\u5316<\/strong><\/p>\n<p><strong>Redis\u6301\u4e45\u6709\u4e24\u79cd\u65b9\u5f0f:Snapshotting(\u5feb\u7167),Append-only file(AOF)<br \/><\/strong><\/p>\n<p><strong>Snapshotting(\u5feb\u7167)<\/strong><\/p>\n<p>1\u3001\u5c06\u5b58\u50a8\u5728\u5185\u5b58\u7684\u6570\u636e\u4ee5\u5feb\u7167\u7684\u65b9\u5f0f\u5199\u5165\u4e8c\u8fdb\u5236\u6587\u4ef6\u4e2d\uff0c\u5982\u9ed8\u8ba4dump.rdb\u4e2d<\/p>\n<p>2\u3001save 900 1&nbsp;<\/p>\n<p><strong>#900\u79d2\u5185\u5982\u679c\u8d85\u8fc71\u4e2aKey\u88ab\u4fee\u6539\uff0c\u5219\u542f\u52a8\u5feb\u7167\u4fdd\u5b58<\/strong><\/p>\n<p>3\u3001save 300 10&nbsp;<\/p>\n<p><strong>#300\u79d2\u5185\u5982\u679c\u8d85\u8fc710\u4e2aKey\u88ab\u4fee\u6539\uff0c\u5219\u542f\u52a8\u5feb\u7167\u4fdd\u5b58<\/strong><\/p>\n<p>4\u3001save 60 10000&nbsp;<\/p>\n<p><strong>#60\u79d2\u5185\u5982\u679c\u8d85\u8fc710000\u4e2aKey\u88ab\u4fee\u6539\uff0c\u5219\u542f\u52a8\u5feb\u7167\u4fdd\u5b58<\/strong><\/p>\n<p><strong>Append-only file(AOF)<\/strong><\/p>\n<p>1\u3001\u4f7f\u7528AOF\u6301\u4e45\u65f6\uff0c\u670d\u52a1\u4f1a\u5c06\u6bcf\u4e2a\u6536\u5230\u7684\u5199\u547d\u4ee4\u901a\u8fc7write\u51fd\u6570\u8ffd\u52a0\u5230\u6587\u4ef6\u4e2d\uff08appendonly.aof\uff09<\/p>\n<p>2\u3001AOF\u6301\u4e45\u5316\u5b58\u50a8\u65b9\u5f0f\u53c2\u6570\u8bf4\u660e<\/p>\n<p>appendonly yes&nbsp;&nbsp;<\/p>\n<p><strong>#\u5f00\u542fAOF\u6301\u4e45\u5316\u5b58\u50a8\u65b9\u5f0f<\/strong><\/p>\n<p>appendfsync always&nbsp;<\/p>\n<p><strong>#\u6536\u5230\u5199\u547d\u4ee4\u540e\u5c31\u7acb\u5373\u5199\u5165\u78c1\u76d8\uff0c\u6548\u7387\u6700\u5dee\uff0c\u6548\u679c\u6700\u597d<\/strong><\/p>\n<p>appendfsync everysec<\/p>\n<p><strong>#\u6bcf\u79d2\u5199\u5165\u78c1\u76d8\u4e00\u6b21\uff0c\u6548\u7387\u4e0e\u6548\u679c\u5c45\u4e2d<\/strong><\/p>\n<p>appendfsync no&nbsp;<\/p>\n<p><strong>#\u5b8c\u5168\u4f9d\u8d56OS\uff0c\u6548\u7387\u6700\u4f73\uff0c\u6548\u679c\u6ca1\u6cd5\u4fdd\u8bc1<\/strong><\/p>\n<p><strong>12\u3001Redis \u6027\u80fd\u6d4b\u8bd5<\/strong><\/p>\n<p>\u81ea\u5e26\u76f8\u5173\u6d4b\u8bd5\u5de5\u5177&nbsp;<\/p>\n<\/p>\n<ol>\n<li>\n<p>[root@test&nbsp;~]#&nbsp;redis-benchmark&nbsp;&#8211;help&nbsp;<\/p>\n<\/li>\n<li>\n<p>Usage:&nbsp;redis-benchmark&nbsp;[-h&nbsp;<span><span>host<\/span><span>&gt;<\/span>]&nbsp;[-p&nbsp;<span><span>port<\/span><span>&gt;<\/span>]&nbsp;[-c&nbsp;<span><span>clients<\/span><span>&gt;<\/span>]&nbsp;[-n&nbsp;<span><span>requests<\/span>]<span>&gt;<\/span>&nbsp;[-k&nbsp;<span><span>boolean<\/span><span>&gt;<\/span>]&nbsp;&nbsp;&nbsp;<\/span><\/span><\/span><\/span><\/span><\/p>\n<\/li>\n<li>\n<p>-h&nbsp;<span><span>hostname<\/span><span>&gt;<\/span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Server&nbsp;hostname&nbsp;(default&nbsp;127.0.0.1)&nbsp;&nbsp;&nbsp;<\/span><\/p>\n<\/li>\n<li>\n<p>-p&nbsp;<span><span>port<\/span><span>&gt;<\/span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Server&nbsp;port&nbsp;(default&nbsp;6379)&nbsp;&nbsp;&nbsp;<\/span><\/p>\n<\/li>\n<li>\n<p>-s&nbsp;<span><span>socket<\/span><span>&gt;<\/span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Server&nbsp;socket&nbsp;(overrides&nbsp;host&nbsp;and&nbsp;port)&nbsp;-a&nbsp;<span><span>password<\/span><span>&gt;<\/span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Password&nbsp;for&nbsp;Redis&nbsp;Auth&nbsp;&nbsp;&nbsp;<\/span><\/span><\/p>\n<\/li>\n<li>\n<p>-c&nbsp;<span><span>clients<\/span><span>&gt;<\/span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Number&nbsp;of&nbsp;parallel&nbsp;connections&nbsp;(default&nbsp;50)&nbsp;&nbsp;&nbsp;<\/span><\/p>\n<\/li>\n<li>\n<p>-n&nbsp;<span><span>requests<\/span><span>&gt;<\/span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Total&nbsp;number&nbsp;of&nbsp;requests&nbsp;(default&nbsp;100000)&nbsp;&nbsp;&nbsp;<\/span><\/p>\n<\/li>\n<li>\n<p>-d&nbsp;<span><span>size<\/span><span>&gt;<\/span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Data&nbsp;size&nbsp;of&nbsp;SET\/GET&nbsp;value&nbsp;in&nbsp;bytes&nbsp;(default&nbsp;2)&nbsp;&nbsp;&nbsp;<\/span><\/p>\n<\/li>\n<li>\n<p>-dbnum&nbsp;<span><span>db<\/span><span>&gt;<\/span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SELECT&nbsp;the&nbsp;specified&nbsp;db&nbsp;number&nbsp;(default&nbsp;0)&nbsp;&nbsp;&nbsp;<\/span><\/p>\n<\/li>\n<li>\n<p>-k&nbsp;<span><span>boolean<\/span><span>&gt;<\/span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>1<\/span>=<span>keep<\/span>&nbsp;alive&nbsp;<span>0<\/span>=<span>reconnect<\/span>&nbsp;(default&nbsp;1)&nbsp;&nbsp;&nbsp;<\/span><\/p>\n<\/li>\n<li>\n<p>-r&nbsp;<span><span>keyspacelen<\/span><span>&gt;<\/span>&nbsp;&nbsp;&nbsp;Use&nbsp;random&nbsp;keys&nbsp;for&nbsp;SET\/GET\/INCR,&nbsp;random&nbsp;values&nbsp;for&nbsp;SADD&nbsp;&nbsp;Using&nbsp;this&nbsp;option&nbsp;the&nbsp;benchmark&nbsp;will&nbsp;expand&nbsp;the&nbsp;string&nbsp;__rand_int__&nbsp;&nbsp;inside&nbsp;an&nbsp;argument&nbsp;with&nbsp;a&nbsp;12&nbsp;digits&nbsp;number&nbsp;in&nbsp;the&nbsp;specified&nbsp;range&nbsp;&nbsp;from&nbsp;0&nbsp;to&nbsp;keyspacelen-1.&nbsp;The&nbsp;substitution&nbsp;changes&nbsp;every&nbsp;time&nbsp;a&nbsp;command&nbsp;&nbsp;is&nbsp;executed.&nbsp;Default&nbsp;tests&nbsp;use&nbsp;this&nbsp;to&nbsp;hit&nbsp;random&nbsp;keys&nbsp;in&nbsp;the&nbsp;&nbsp;specified&nbsp;range.&nbsp;&nbsp;<\/span><\/p>\n<\/li>\n<li>\n<p>-P&nbsp;<span><span>numreq<\/span><span>&gt;<\/span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pipeline&nbsp;<span><span>numreq<\/span><span>&gt;<\/span>&nbsp;requests.&nbsp;Default&nbsp;1&nbsp;(no&nbsp;pipeline).&nbsp;&nbsp;&nbsp;<\/span><\/span><\/p>\n<\/li>\n<li>\n<p>-q&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Quiet.&nbsp;Just&nbsp;show&nbsp;query\/sec&nbsp;values&nbsp;&#8211;csv&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Output&nbsp;in&nbsp;CSV&nbsp;format&nbsp;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>-l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Loop.&nbsp;Run&nbsp;the&nbsp;tests&nbsp;forever&nbsp;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>-t&nbsp;<span><span>tests<\/span><span>&gt;<\/span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Only&nbsp;run&nbsp;the&nbsp;comma&nbsp;separated&nbsp;list&nbsp;of&nbsp;tests.&nbsp;The&nbsp;test&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;names&nbsp;are&nbsp;the&nbsp;same&nbsp;as&nbsp;the&nbsp;ones&nbsp;produced&nbsp;as&nbsp;output.&nbsp;&nbsp;&nbsp;<\/span><\/p>\n<\/li>\n<li>\n<p>-I&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Idle&nbsp;mode.&nbsp;Just&nbsp;open&nbsp;N&nbsp;idle&nbsp;connections&nbsp;and&nbsp;wait.&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>Examples:&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>Run&nbsp;the&nbsp;benchmark&nbsp;with&nbsp;the&nbsp;default&nbsp;configuration&nbsp;against&nbsp;127.0.0.1:6379:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>$&nbsp;redis-benchmark&nbsp;<\/p>\n<\/li>\n<li>\n<p>Use&nbsp;20&nbsp;parallel&nbsp;clients,&nbsp;for&nbsp;a&nbsp;total&nbsp;of&nbsp;100k&nbsp;requests,&nbsp;against&nbsp;192.168.1.1:&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>$&nbsp;redis-benchmark&nbsp;-h&nbsp;192.168.1.1&nbsp;-p&nbsp;6379&nbsp;-n&nbsp;100000&nbsp;-c&nbsp;20&nbsp;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>Fill&nbsp;127.0.0.1:6379&nbsp;with&nbsp;about&nbsp;1&nbsp;million&nbsp;keys&nbsp;only&nbsp;using&nbsp;the&nbsp;SET&nbsp;test:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>$&nbsp;redis-benchmark&nbsp;-t&nbsp;set&nbsp;-n&nbsp;1000000&nbsp;-r&nbsp;100000000&nbsp;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>Benchmark&nbsp;127.0.0.1:6379&nbsp;for&nbsp;a&nbsp;few&nbsp;commands&nbsp;producing&nbsp;CSV&nbsp;output:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>$&nbsp;redis-benchmark&nbsp;-t&nbsp;ping,set,get&nbsp;-n&nbsp;100000&nbsp;&#8211;csv&nbsp;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>Benchmark&nbsp;a&nbsp;specific&nbsp;command&nbsp;line:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>$&nbsp;redis-benchmark&nbsp;-r&nbsp;10000&nbsp;-n&nbsp;10000&nbsp;eval&nbsp;&#8216;return&nbsp;redis.call(&#8220;ping&#8221;)&#8217;&nbsp;0&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>Fill&nbsp;a&nbsp;list&nbsp;with&nbsp;10000&nbsp;random&nbsp;elements:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>$&nbsp;redis-benchmark&nbsp;-r&nbsp;10000&nbsp;-n&nbsp;10000&nbsp;lpush&nbsp;mylist&nbsp;__rand_int__&nbsp;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>On&nbsp;user&nbsp;specified&nbsp;command&nbsp;lines&nbsp;__rand_int__&nbsp;is&nbsp;replaced&nbsp;with&nbsp;a&nbsp;random&nbsp;integer&nbsp;with&nbsp;a&nbsp;range&nbsp;of&nbsp;values&nbsp;selected&nbsp;by&nbsp;the&nbsp;-r&nbsp;option.&nbsp;<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u5b9e\u9645\u6d4b\u8bd5\u540c\u65f6\u6267\u884c100\u4e07\u7684\u8bf7\u6c42<\/strong>&nbsp;<\/p>\n<\/p>\n<ol>\n<li>\n<p>[root@test&nbsp;~]#&nbsp;redis-benchmark&nbsp;-n&nbsp;1000000&nbsp;-q&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>PING_INLINE:&nbsp;152578.58&nbsp;requests&nbsp;per&nbsp;second&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>PING_BULK:&nbsp;150308.14&nbsp;requests&nbsp;per&nbsp;second&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>SET:&nbsp;143266.47&nbsp;requests&nbsp;per&nbsp;second&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>GET:&nbsp;148632.58&nbsp;requests&nbsp;per&nbsp;second&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>INCR:&nbsp;145857.64&nbsp;requests&nbsp;per&nbsp;second&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>LPUSH:&nbsp;143781.45&nbsp;requests&nbsp;per&nbsp;second&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>LPOP:&nbsp;147819.66&nbsp;requests&nbsp;per&nbsp;second&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>SADD:&nbsp;138350.86&nbsp;requests&nbsp;per&nbsp;second&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>SPOP:&nbsp;134282.27&nbsp;requests&nbsp;per&nbsp;second&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>LPUSH&nbsp;(needed&nbsp;to&nbsp;benchmark&nbsp;LRANGE):&nbsp;141302.81&nbsp;requests&nbsp;per&nbsp;second&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>LRANGE_100&nbsp;(first&nbsp;100&nbsp;elements):&nbsp;146756.67&nbsp;requests&nbsp;per&nbsp;second&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>LRANGE_300&nbsp;(first&nbsp;300&nbsp;elements):&nbsp;148104.27&nbsp;requests&nbsp;per&nbsp;second&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>LRANGE_500&nbsp;(first&nbsp;450&nbsp;elements):&nbsp;152671.75&nbsp;requests&nbsp;per&nbsp;second&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>LRANGE_600&nbsp;(first&nbsp;600&nbsp;elements):&nbsp;148104.27&nbsp;requests&nbsp;per&nbsp;second&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>MSET&nbsp;(10&nbsp;keys):&nbsp;132731.62&nbsp;requests&nbsp;per&nbsp;second&nbsp;<\/p>\n<\/li>\n<\/ol>\n<p><strong>13\u3001Redis\u7684\u5907\u4efd\u4e0e\u6062\u590d<\/strong><\/p>\n<p>Redis\u81ea\u52a8\u5907\u4efd\u6709\u4e24\u79cd\u65b9\u5f0f<\/p>\n<p>\u7b2c\u4e00\u79cd\u662f\u901a\u8fc7dump.rdb\u6587\u4ef6\u5b9e\u73b0\u5907\u4efd<\/p>\n<p>\u7b2c\u4e8c\u79cd\u4f7f\u7528aof\u6587\u4ef6\u5b9e\u73b0\u81ea\u52a8\u5907\u4efd<\/p>\n<p><strong>dump.rdb\u5907\u4efd<\/strong><\/p>\n<p>Redis\u670d\u52a1\u9ed8\u8ba4\u7684\u81ea\u52a8\u6587\u4ef6\u5907\u4efd\u65b9\u5f0f(AOF\u6ca1\u6709\u5f00\u542f\u7684\u60c5\u51b5\u4e0b)\uff0c\u5728\u670d\u52a1\u542f\u52a8\u65f6\uff0c\u5c31\u4f1a\u81ea\u52a8\u4ecedump.rdb\u6587\u4ef6\u4e2d\u53bb\u52a0\u8f7d\u6570\u636e\u3002<\/p>\n<p>**\u5177\u4f53\u914d\u7f6e\u5728redis.conf<\/p>\n<p>save 900 1<\/p>\n<p>save 300 10<\/p>\n<p>save 60 10000**<\/p>\n<p>\u4e5f\u53ef\u4ee5\u624b\u5de5\u6267\u884csave\u547d\u4ee4\u5b9e\u73b0\u624b\u52a8\u5907\u4efd&nbsp;<\/p>\n<\/p>\n<ol>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;set&nbsp;name&nbsp;key&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>OK&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;SAVE&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>OK&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;set&nbsp;name&nbsp;key1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>OK&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;BGSAVE&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>Background&nbsp;saving&nbsp;started&nbsp;<\/p>\n<\/li>\n<\/ol>\n<p>redis\u5feb\u7167\u5230dump\u6587\u4ef6\u65f6\uff0c\u4f1a\u81ea\u52a8\u751f\u6210dump.rdb\u7684\u6587\u4ef6&nbsp;<\/p>\n<\/p>\n<ol>\n<li>\n<p>#&nbsp;The&nbsp;filename&nbsp;where&nbsp;to&nbsp;dump&nbsp;the&nbsp;DB&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>dbfilename&nbsp;dump.rdb&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>-rw-r&#8211;r&#8211;&nbsp;1&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;253&nbsp;Apr&nbsp;17&nbsp;20:17&nbsp;dump.rdb&nbsp;<\/p>\n<\/li>\n<\/ol>\n<p>SAVE\u547d\u4ee4\u8868\u793a\u4f7f\u7528\u4e3b\u8fdb\u7a0b\u5c06\u5f53\u524d\u6570\u636e\u5e93\u5feb\u7167\u5230dump\u6587\u4ef6<\/p>\n<p>BGSAVE\u547d\u4ee4\u8868\u793a\uff0c\u4e3b\u8fdb\u7a0b\u4f1afork\u4e00\u4e2a\u5b50\u8fdb\u7a0b\u6765\u8fdb\u884c\u5feb\u7167\u5907\u4efd<\/p>\n<p>\u4e24\u79cd\u5907\u4efd\u4e0d\u540c\u4e4b\u5904\uff0c\u524d\u8005\u4f1a\u963b\u585e\u4e3b\u8fdb\u7a0b\uff0c\u540e\u8005\u4e0d\u4f1a\u3002<\/p>\n<p><strong>\u6062\u590d\u4e3e\u4f8b<\/strong>&nbsp;<\/p>\n<\/p>\n<ol>\n<li>\n<p>#&nbsp;Note&nbsp;that&nbsp;you&nbsp;must&nbsp;specify&nbsp;a&nbsp;directory&nbsp;here,&nbsp;not&nbsp;a&nbsp;file&nbsp;name.dir&nbsp;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>\/usr\/local\/redisdata\/&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>#\u5907\u4efd\u6587\u4ef6\u5b58\u50a8\u8def\u5f84&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;CONFIG&nbsp;GET&nbsp;dir&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>1)&nbsp;&#8220;dir&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>2)&nbsp;&#8220;\/usr\/local\/redisdata&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;set&nbsp;key&nbsp;001&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>OK&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;set&nbsp;key1&nbsp;002&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>OK&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;set&nbsp;key2&nbsp;003&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>OK&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;save&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>OK&nbsp;<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u5c06\u5907\u4efd\u6587\u4ef6\u5907\u4efd\u5230\u5176\u5b83\u76ee\u5f55<\/strong>&nbsp;<\/p>\n<\/p>\n<ol>\n<li>\n<p>[root@test&nbsp;~]#&nbsp;ll&nbsp;\/usr\/local\/redisdata\/&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>total&nbsp;4&nbsp;<\/p>\n<\/li>\n<li>\n<p>-rw-r&#8211;r&#8211;&nbsp;1&nbsp;root&nbsp;root&nbsp;49&nbsp;Apr&nbsp;17&nbsp;21:24&nbsp;dump.rdb&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>[root@test&nbsp;~]#&nbsp;date&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>Tue&nbsp;Apr&nbsp;17&nbsp;21:25:38&nbsp;CST&nbsp;2018&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>[root@test&nbsp;~]#&nbsp;cp&nbsp;.\/dump.rdb&nbsp;\/tmp\/&nbsp;<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u5220\u9664\u6570\u636e<\/strong>&nbsp;<\/p>\n<\/p>\n<ol>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;del&nbsp;key1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(integer)&nbsp;1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;get&nbsp;key1&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>(nil)&nbsp;<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u5173\u95ed\u670d\u52a1\uff0c\u5c06\u539f\u5907\u4efd\u6587\u4ef6\u62f7\u8d1d\u56desave\u5907\u4efd\u76ee\u5f55<\/strong>&nbsp;<\/p>\n<\/p>\n<ol>\n<li>\n<p>[root@test&nbsp;~]#&nbsp;redis-cli&nbsp;-a&nbsp;foobared&nbsp;shutdown&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>[root@test&nbsp;~]#&nbsp;lsof&nbsp;-i&nbsp;:6379&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>[root@test&nbsp;~]#&nbsp;cp&nbsp;\/tmp\/dump.rdb&nbsp;\/usr\/local\/redisdata\/&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>cp:&nbsp;overwrite&nbsp;\u2018\/usr\/local\/redisdata\/dump.rdb\u2019?&nbsp;y&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>[root@test&nbsp;~]#&nbsp;redis-server&nbsp;\/usr\/local\/redis\/redis.conf&nbsp;&amp;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>[1]&nbsp;31487&nbsp;<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u767b\u5f55\u67e5\u770b\u6570\u636e\u662f\u5426\u6062\u590d<\/strong>&nbsp;<\/p>\n<\/p>\n<ol>\n<li>\n<p>[root@test&nbsp;~]#&nbsp;redis-cli&nbsp;-a&nbsp;foobared&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>127.0.0.1:6379<span>&gt;<\/span>&nbsp;mget&nbsp;key&nbsp;key1&nbsp;key2&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>1)&nbsp;&#8220;001&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>2)&nbsp;&#8220;002&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>3)&nbsp;&#8220;003&#8221;&nbsp;<\/p>\n<\/li>\n<\/ol>\n<p><strong>AOF\u81ea\u52a8\u5907\u4efd<\/strong><\/p>\n<p>redis\u670d\u52a1\u9ed8\u8ba4\u662f\u5173\u95ed\u6b64\u9879\u914d\u7f6e&nbsp;<\/p>\n<\/p>\n<ol>\n<li>\n<p>######&nbsp;APPEND&nbsp;ONLY&nbsp;MODE&nbsp;##########&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>appendonly&nbsp;no&nbsp;<\/p>\n<\/li>\n<li>\n<p>#&nbsp;The&nbsp;name&nbsp;of&nbsp;the&nbsp;append&nbsp;only&nbsp;file&nbsp;(default:&nbsp;&#8220;appendonly.aof&#8221;)&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>appendfilename&nbsp;&#8220;appendonly.aof&#8221;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>#&nbsp;appendfsync&nbsp;always&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>appendfsync&nbsp;everysec&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>#&nbsp;appendfsync&nbsp;no&nbsp;<\/p>\n<\/li>\n<\/ol>\n<p>\u914d\u7f6e\u6587\u4ef6\u7684\u76f8\u5173\u53c2\u6570\uff0c\u524d\u9762\u5df2\u7ecf\u8be6\u7ec6\u4ecb\u7ecd\u8fc7\u3002<\/p>\n<p>AOF\u6587\u4ef6\u5907\u4efd\uff0c\u662f\u5907\u4efd\u6240\u6709\u7684\u5386\u53f2\u8bb0\u5f55\u4ee5\u53ca\u6267\u884c\u8fc7\u7684\u547d\u4ee4\uff0c\u548cmysql binlog\u5f88\u76f8\u4f3c\uff0c\u5728\u6062\u590d\u65f6\u5c31\u662f\u91cd\u65b0\u6267\u6b21\u4e00\u6b21\u4e4b\u524d\u6267\u884c\u7684\u547d\u4ee4\uff0c\u9700\u8981\u6ce8\u610f\u7684\u5c31\u662f\u5728\u6062\u590d\u4e4b\u524d\uff0c\u548c\u6570\u636e\u5e93\u6062\u590d\u4e00\u6837\u9700\u8981\u624b\u5de5\u5220\u9664\u6267\u884c\u8fc7\u7684del\u6216\u8bef\u64cd\u4f5c\u7684\u547d\u4ee4\u3002<\/p>\n<p>AOF\u4e0edump\u5907\u4efd\u4e0d\u540c<\/p>\n<p>1\u3001aof\u6587\u4ef6\u5907\u4efd\u4e0edump\u6587\u4ef6\u5907\u4efd\u4e0d\u540c<\/p>\n<p>2\u3001\u670d\u52a1\u8bfb\u53d6\u6587\u4ef6\u7684\u4f18\u5148\u987a\u5e8f\u4e0d\u540c\uff0c\u4f1a\u6309\u7167\u4ee5\u4e0b\u4f18\u5148\u7ea7\u8fdb\u884c\u542f\u52a8<\/p>\n<p>&nbsp; &nbsp; &nbsp; \u5982\u679c\u53ea\u914d\u7f6eAOF,\u91cd\u542f\u65f6\u52a0\u8f7dAOF\u6587\u4ef6\u6062\u590d\u6570\u636e<\/p>\n<p>&nbsp; &nbsp; &nbsp; \u5982\u679c\u540c\u65f6 \u914d\u7f6e\u4e86RBD\u548cAOF,\u542f\u52a8\u662f\u53ea\u52a0\u8f7dAOF\u6587\u4ef6\u6062\u590d\u6570\u636e<\/p>\n<p>&nbsp; &nbsp; &nbsp; \u5982\u679c\u53ea\u914d\u7f6eRBD,\u542f\u52a8\u65f6\u5c06\u52a0\u8f7ddump\u6587\u4ef6\u6062\u590d\u6570\u636e<\/p>\n<p>\u6ce8\u610f\uff1a\u53ea\u8981\u914d\u7f6e\u4e86aof\uff0c\u4f46\u662f\u6ca1\u6709aof\u6587\u4ef6\uff0c\u8fd9\u4e2a\u65f6\u5019\u542f\u52a8\u7684\u6570\u636e\u5e93\u4f1a\u662f\u7a7a\u7684<\/p>\n<p><strong>14\u3001Redis \u751f\u4ea7\u4f18\u5316\u4ecb\u7ecd<\/strong><\/p>\n<p>1\u3001\u5185\u5b58\u7ba1\u7406\u4f18\u5316&nbsp;&nbsp;<\/p>\n<\/p>\n<ol>\n<li>\n<p>hash-max-ziplist-entries&nbsp;512&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>&nbsp;hash-max-ziplist-value&nbsp;64&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>&nbsp;list-max-ziplist-entries&nbsp;512&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>&nbsp;list-max-ziplist-value&nbsp;64&nbsp;&nbsp;<\/p>\n<\/li>\n<li>\n<p>&nbsp;#list\u7684\u6210\u5458\u4e0e\u503c\u90fd\u4e0d\u592a\u5927\u7684\u65f6\u5019\u4f1a\u91c7\u7528\u7d27\u51d1\u683c\u5f0f\u6765\u5b58\u50a8\uff0c\u76f8\u5bf9\u5185\u5b58\u5f00\u9500\u4e5f\u8f83\u5c0f&nbsp;<\/p>\n<\/li>\n<\/ol>\n<p>\u5728linux\u73af\u5883\u8fd0\u884cRedis\u65f6\uff0c\u5982\u679c\u7cfb\u7edf\u7684\u5185\u5b58\u6bd4\u8f83\u5c0f\uff0c\u8fd9\u4e2a\u65f6\u5019\u81ea\u52a8\u5907\u4efd\u4f1a\u6709\u53ef\u80fd\u5931\u8d25\uff0c\u9700\u8981\u4fee\u6539\u7cfb\u7edf\u7684vm.overcommit_memory \u53c2\u6570\uff0c\u8fd9\u4e2a\u53c2\u6570\u662flinux\u7cfb\u7edf\u7684\u5185\u5b58\u5206\u914d\u7b56\u7565<\/p>\n<p>0 \u8868\u793a\u5185\u6838\u5c06\u68c0\u67e5\u662f\u5426\u6709\u8db3\u591f\u7684\u53ef\u7528\u5185\u5b58\u4f9b\u5e94\u7528\u8fdb\u7a0b\u4f7f\u7528\uff1b\u5982\u679c\u6709\u8db3\u591f\u7684\u53ef\u7528\u5185\u5b58\uff0c\u5185\u5b58\u7533\u8bf7\u5141\u8bb8\uff1b\u5426\u5219\uff0c\u5185\u5b58\u7533\u8bf7\u5931\u8d25\uff0c\u5e76\u628a\u9519\u8bef\u8fd4\u56de\u7ed9\u5e94\u7528\u8fdb\u7a0b\u3002<\/p>\n<p>1 \u8868\u793a\u5185\u6838\u5141\u8bb8\u5206\u914d\u6240\u6709\u7684\u7269\u7406\u5185\u5b58\uff0c\u800c\u4e0d\u7ba1\u5f53\u524d\u7684\u5185\u5b58\u72b6\u6001\u5982\u4f55\u3002<\/p>\n<p>2 \u8868\u793a\u5185\u6838\u5141\u8bb8\u5206\u914d\u8d85\u8fc7\u6240\u6709\u7269\u7406\u5185\u5b58\u548c\u4ea4\u6362\u7a7a\u95f4\u603b\u548c\u7684\u5185\u5b58<\/p>\n<p>Redis\u5b98\u65b9\u7684\u8bf4\u660e\u662f\uff0c\u5efa\u8bae\u5c06vm.overcommit_memory\u7684\u503c\u4fee\u6539\u4e3a1\uff0c\u53ef\u4ee5\u7528\u4e0b\u9762\u51e0\u79cd\u65b9\u5f0f\u8fdb\u884c\u4fee\u6539\uff1a<\/p>\n<p>\uff081\uff09\u7f16\u8f91\/etc\/sysctl.conf \u6539vm.overcommit_memory=1\uff0c\u7136\u540esysctl -p \u4f7f\u914d\u7f6e\u6587\u4ef6\u751f\u6548<\/p>\n<p>\uff082\uff09sysctl vm.overcommit_memory=1<\/p>\n<p>\uff083\uff09echo 1 &gt; \/proc\/sys\/vm\/overcommit_memory<\/p>\n<p>**2\u3001\u5185\u5b58\u9884\u5206\u914d<\/p>\n<p>3\u3001\u6301\u4e45\u5316\u673a\u5236**<\/p>\n<p>\u5b9a\u65f6\u5feb\u7167\uff1a\u6548\u7387\u4e0d\u9ad8\uff0c\u4f1a\u4e22\u5931\u6570\u636e<\/p>\n<p>AOF\uff1a\u4fdd\u6301\u6570\u636e\u5b8c\u6574\u6027\uff08\u4e00\u4e2a\u5b9e\u4f8b\u7684\u6570\u91cf\u4e0d\u8981\u592a\u59272G\u6700\u5927\uff09<\/p>\n<p><strong>\u4f18\u5316\u603b\u7ed3<\/strong><\/p>\n<p>1\uff09\u6839\u636e\u4e1a\u52a1\u9700\u8981\u9009\u62e9\u5408\u9002\u7684\u6570\u636e\u7c7b\u578b<\/p>\n<p>2\uff09\u5f53\u4e1a\u52a1\u573a\u666f\u4e0d\u9700\u6301\u4e45\u5316\u65f6\u5c31\u5173\u95ed\u6240\u6709\u6301\u4e45\u5316\u65b9\u5f0f\uff08\u91c7\u7528ssd\u78c1\u76d8\u6765\u63d0\u5347\u6548\u7387\uff09<\/p>\n<p>3\uff09\u4e0d\u8981\u4f7f\u7528\u865a\u62df\u5185\u5b58\u7684\u65b9\u5f0f\uff0c\u6bcf\u79d2\u5b9e\u65f6\u5199\u5165AOF<\/p>\n<p>4\uff09\u4e0d\u8981\u8ba9REDIS\u6240\u5728\u7684\u670d\u52a1\u5668\u7269\u7406\u5185\u5b58\u4f7f\u7528\u8d85\u8fc7\u5185\u5b58\u603b\u91cf\u76843\/5<\/p>\n<p>5\uff09\u8981\u4f7f\u7528maxmemory<\/p>\n<p>6\uff09\u5927\u6570\u636e\u91cf\u6309\u4e1a\u52a1\u5206\u5f00\u4f7f\u7528\u591a\u4e2aredis\u5b9e\u4f8b<\/p>\n<p><strong>15\u3001Redis\u96c6\u7fa4\u5e94\u7528<\/strong><\/p>\n<p>\u96c6\u7fa4\u662f\u5c06\u591a\u4e2aredis\u5b9e\u4f8b\u96c6\u4e2d\u5728\u4e00\u8d77\uff0c\u5b9e\u73b0\u540c\u4e00\u4e1a\u52a1\u9700\u6c42\uff0c\u6216\u8005\u5b9e\u73b0\u9ad8\u53ef\u7528\u4e0e\u8d1f\u8f7d\u5747\u8861<\/p>\n<p>\u5230\u5e95\u6709\u54ea\u4e9b\u96c6\u7fa4\u65b9\u6848\u5462\uff1f\uff1f<\/p>\n<p><strong>1\u3001haproxy+keepalived+redis\u96c6\u7fa4<\/strong><\/p>\n<\/p>\n<p>1\uff09\u901a\u8fc7redis\u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u5b9e\u73b0\u4e3b\u4ece\u590d\u5236\u3001\u8bfb\u5199\u5206\u79bb<\/p>\n<p>2\uff09\u901a\u8fc7haproxy\u7684\u914d\u7f6e\uff0c\u5b9e\u73b0\u8d1f\u8f7d\u5747\u8861\uff0c\u5f53\u4ece\u6545\u969c\u65f6\u4e5f\u4f1a\u53ca\u65f6\u4ece\u96c6\u7fa4\u4e2dT\u9664<\/p>\n<p>3\uff09\u5229\u7528keepalived\u6765\u5b9e\u73b0\u8d1f\u8f7d\u7684\u9ad8\u53ef\u7528<\/p>\n<p><strong>2\u3001redis\u5b98\u65b9Sentinel\u96c6\u7fa4\u7ba1\u7406\u5de5\u5177<\/strong><\/p>\n<\/p>\n<\/p>\n<p>1\uff09sentinel\u8d1f\u8d23\u5bf9\u96c6\u7fa4\u4e2d\u7684\u4e3b\u4ece\u670d\u52a1\u76d1\u63a7\u3001\u63d0\u9192\u548c\u81ea\u52a8\u6545\u969c\u8f6c\u79fb<\/p>\n<p>2\uff09redis\u96c6\u7fa4\u8d1f\u8d23\u5bf9\u5916\u63d0\u4f9b\u670d\u52a1<\/p>\n<p>\u5173\u4e8eredis sentinel cluster\u96c6\u7fa4\u914d\u7f6e\u53ef\u53c2\u8003<\/p>\n<p><strong>3\u3001Redis Cluster<\/strong><\/p>\n<p>Redis Cluster\u662fRedis\u7684\u5206\u5e03\u5f0f\u89e3\u51b3\u65b9\u6848\uff0c\u5728Redis 3.0\u7248\u672c\u6b63\u5f0f\u63a8\u51fa\u7684\uff0c\u6709\u6548\u89e3\u51b3\u4e86Redis\u5206\u5e03\u5f0f\u65b9\u9762\u7684\u9700\u6c42\u3002\u5f53\u9047\u5230\u5355\u673a\u5185\u5b58\u3001\u5e76\u53d1\u3001\u6d41\u91cf\u7b49\u74f6\u9888\u65f6\uff0c\u53ef\u4ee5\u91c7\u7528Cluster\u67b6\u6784\u8fbe\u5230\u8d1f\u8f7d\u5747\u8861\u7684\u76ee\u7684\u3002<\/p>\n<\/p>\n<p>1\uff09\u5b98\u65b9\u63a8\u8350\uff0c\u6bcb\u5eb8\u7f6e\u7591\u3002<\/p>\n<p>2\uff09\u53bb\u4e2d\u5fc3\u5316\uff0c\u96c6\u7fa4\u6700\u5927\u53ef\u589e\u52a01000\u4e2a\u8282\u70b9\uff0c\u6027\u80fd\u968f\u8282\u70b9\u589e\u52a0\u800c\u7ebf\u6027\u6269\u5c55\u3002<\/p>\n<p>3\uff09\u7ba1\u7406\u65b9\u4fbf\uff0c\u540e\u7eed\u53ef\u81ea\u884c\u589e\u52a0\u6216\u6458\u9664\u8282\u70b9\uff0c\u79fb\u52a8\u5206\u69fd\u7b49\u7b49\u3002<\/p>\n<p>4\uff09\u7b80\u5355\uff0c\u6613\u4e0a\u624b\u3002&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u638c\u63e1\u8fd915\u70b9\uff0cRedis\u5165\u95e8\u5c31\u591f&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[101],"tags":[],"class_list":["post-201428","post","type-post","status-publish","format-standard","hentry","category-database"],"_links":{"self":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts\/201428","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/comments?post=201428"}],"version-history":[{"count":0,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts\/201428\/revisions"}],"wp:attachment":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/media?parent=201428"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/categories?post=201428"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/tags?post=201428"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}