{"id":255,"date":"2023-02-24T06:12:15","date_gmt":"2023-02-23T22:12:15","guid":{"rendered":"https:\/\/www.appblog.cn\/?p=255"},"modified":"2023-04-30T15:18:18","modified_gmt":"2023-04-30T07:18:18","slug":"redis-key","status":"publish","type":"post","link":"https:\/\/www.appblog.cn\/index.php\/2023\/02\/24\/redis-key\/","title":{"rendered":"Redis \u952e(key)"},"content":{"rendered":"<h2>Redis \u952e(key)<\/h2>\n<p>Redis \u952e\u547d\u4ee4\u7528\u4e8e\u7ba1\u7406 redis \u7684\u952e\u3002<\/p>\n<p><strong>\u8bed\u6cd5<\/strong><\/p>\n<p><!-- more --><\/p>\n<p>Redis \u952e\u547d\u4ee4\u7684\u57fa\u672c\u8bed\u6cd5\u5982\u4e0b\uff1a<\/p>\n<pre><code class=\"language-bash\">redis 127.0.0.1:6379&gt; COMMAND KEY_NAME<\/code><\/pre>\n<p><strong>\u5b9e\u4f8b<\/strong><\/p>\n<pre><code class=\"language-bash\">redis 127.0.0.1:6379&gt; set appblog redis\nOK\nredis 127.0.0.1:6379&gt; del appblog\n(integer) 1<\/code><\/pre>\n<p>\u5728\u4ee5\u4e0a\u5b9e\u4f8b\u4e2d del \u662f\u4e00\u4e2a\u547d\u4ee4\uff0cappblog \u662f\u4e00\u4e2a\u952e\u3002\u5982\u679c\u952e\u88ab\u5220\u9664\u6210\u529f\uff0c\u547d\u4ee4\u6267\u884c\u540e\u8f93\u51fa<code>(integer) 1<\/code>\uff0c\u5426\u5219\u5c06\u8f93\u51fa<code>(integer) 0<\/code><\/p>\n<h2>Redis keys \u547d\u4ee4<\/h2>\n<p>\u66f4\u591a\u547d\u4ee4\u53c2\u8003\uff1a<a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/redis.io\/commands\">https:\/\/redis.io\/commands<\/a><\/p>\n<h3>del key<\/h3>\n<p>\u8be5\u547d\u4ee4\u7528\u4e8e\u5728 key \u5b58\u5728\u65f6\u5220\u9664 key<\/p>\n<h3>dump key<\/h3>\n<p>\u5e8f\u5217\u5316\u7ed9\u5b9a key\uff0c\u5e76\u8fd4\u56de\u88ab\u5e8f\u5217\u5316\u7684\u503c<\/p>\n<h3>exists key<\/h3>\n<p>\u68c0\u67e5\u7ed9\u5b9a key \u662f\u5426\u5b58\u5728<\/p>\n<h3>expire key seconds<\/h3>\n<p>\u4e3a\u7ed9\u5b9a key \u8bbe\u7f6e\u8fc7\u671f\u65f6\u95f4\uff0c\u4ee5\u79d2\u8ba1<\/p>\n<h3>expireat key timestamp<\/h3>\n<p>expireat \u7684\u4f5c\u7528\u548c expire \u7c7b\u4f3c\uff0c\u90fd\u7528\u4e8e\u4e3a key \u8bbe\u7f6e\u8fc7\u671f\u65f6\u95f4\u3002 \u4e0d\u540c\u5728\u4e8e expireat \u547d\u4ee4\u63a5\u53d7\u7684\u65f6\u95f4\u53c2\u6570\u662f UNIX \u65f6\u95f4\u6233(unix timestamp)<\/p>\n<h3>pexpire key milliseconds<\/h3>\n<p>\u8bbe\u7f6e key \u7684\u8fc7\u671f\u65f6\u95f4\u4ee5\u6beb\u79d2\u8ba1<\/p>\n<h3>pexpireat key milliseconds-timestamp<\/h3>\n<p>\u8bbe\u7f6e key \u8fc7\u671f\u65f6\u95f4\u7684\u65f6\u95f4\u6233(unix timestamp) \u4ee5\u6beb\u79d2\u8ba1<\/p>\n<h3>keys pattern<\/h3>\n<p>\u67e5\u627e\u6240\u6709\u7b26\u5408\u7ed9\u5b9a\u6a21\u5f0f( pattern)\u7684 key<\/p>\n<pre><code class=\"language-bash\">redis 127.0.0.1:6379&gt; SET appblog1 redis\nOK\nredis 127.0.0.1:6379&gt; SET appblog2 mysql\nOK\nredis 127.0.0.1:6379&gt; SET appblog3 mongodb\nOK\n\nredis 127.0.0.1:6379&gt; KEYS runoob*    # \u67e5\u627e\u4ee5 runoob \u4e3a\u5f00\u5934\u7684 key\n1) &quot;appblog3&quot;\n2) &quot;appblog1&quot;\n3) &quot;appblog2&quot;\n\nredis 127.0.0.1:6379&gt; KEYS *          # \u83b7\u53d6 redis \u4e2d\u6240\u6709\u7684 key \u53ef\u7528\u4f7f\u7528 *\n1) &quot;appblog3&quot;\n2) &quot;appblog1&quot;\n3) &quot;appblog2&quot;<\/code><\/pre>\n<h3>move key db<\/h3>\n<p>\u5c06\u5f53\u524d\u6570\u636e\u5e93\u7684 key \u79fb\u52a8\u5230\u7ed9\u5b9a\u7684\u6570\u636e\u5e93 db \u5f53\u4e2d<\/p>\n<pre><code class=\"language-bash\"># key \u5b58\u5728\u4e8e\u5f53\u524d\u6570\u636e\u5e93\n\nredis&gt; SELECT 0                     # redis\u9ed8\u8ba4\u4f7f\u7528\u6570\u636e\u5e93 0\uff0c\u4e3a\u4e86\u6e05\u6670\u8d77\u89c1\uff0c\u8fd9\u91cc\u518d\u663e\u5f0f\u6307\u5b9a\u4e00\u6b21\u3002\nOK\n\nredis&gt; SET song &quot;secret base - Zone&quot;\nOK\n\nredis&gt; MOVE song 1                  # \u5c06 song \u79fb\u52a8\u5230\u6570\u636e\u5e93 1\n(integer) 1\n\nredis&gt; EXISTS song                  # song \u5df2\u7ecf\u88ab\u79fb\u8d70\n(integer) 0\n\nredis&gt; SELECT 1                     # \u4f7f\u7528\u6570\u636e\u5e93 1\nOK\n\nredis:1&gt; EXISTS song                # \u8bc1\u5b9e song \u88ab\u79fb\u5230\u4e86\u6570\u636e\u5e93 1 (\u6ce8\u610f\u547d\u4ee4\u63d0\u793a\u7b26\u53d8\u6210\u4e86&quot;redis:1&quot;\uff0c\u8868\u660e\u6b63\u5728\u4f7f\u7528\u6570\u636e\u5e93 1)\n(integer) 1\n\n# \u5f53 key \u4e0d\u5b58\u5728\u7684\u65f6\u5019\n\nredis:1&gt; EXISTS fake_key\n(integer) 0\n\nredis:1&gt; MOVE fake_key 0            # \u8bd5\u56fe\u4ece\u6570\u636e\u5e93 1 \u79fb\u52a8\u4e00\u4e2a\u4e0d\u5b58\u5728\u7684 key \u5230\u6570\u636e\u5e93 0\uff0c\u5931\u8d25\n(integer) 0\n\nredis:1&gt; select 0                   # \u4f7f\u7528\u6570\u636e\u5e930\nOK\n\nredis&gt; EXISTS fake_key              # \u8bc1\u5b9e fake_key \u4e0d\u5b58\u5728\n(integer) 0\n\n# \u5f53\u6e90\u6570\u636e\u5e93\u548c\u76ee\u6807\u6570\u636e\u5e93\u6709\u76f8\u540c\u7684 key \u65f6\n\nredis&gt; SELECT 0                     # \u4f7f\u7528\u6570\u636e\u5e930\nOK\nredis&gt; SET favorite_fruit &quot;banana&quot;\nOK\n\nredis&gt; SELECT 1                     # \u4f7f\u7528\u6570\u636e\u5e931\nOK\nredis:1&gt; SET favorite_fruit &quot;apple&quot;\nOK\n\nredis:1&gt; SELECT 0                   # \u4f7f\u7528\u6570\u636e\u5e930\uff0c\u5e76\u8bd5\u56fe\u5c06 favorite_fruit \u79fb\u52a8\u5230\u6570\u636e\u5e93 1\nOK\n\nredis&gt; MOVE favorite_fruit 1        # \u56e0\u4e3a\u4e24\u4e2a\u6570\u636e\u5e93\u6709\u76f8\u540c\u7684 key\uff0cMOVE \u5931\u8d25\n(integer) 0\n\nredis&gt; GET favorite_fruit           # \u6570\u636e\u5e93 0 \u7684 favorite_fruit \u6ca1\u53d8\n&quot;banana&quot;\n\nredis&gt; SELECT 1\nOK\n\nredis:1&gt; GET favorite_fruit         # \u6570\u636e\u5e93 1 \u7684 favorite_fruit \u4e5f\u662f\n&quot;apple&quot;<\/code><\/pre>\n<h3>persist key<\/h3>\n<p>\u79fb\u9664 key \u7684\u8fc7\u671f\u65f6\u95f4\uff0ckey \u5c06\u6301\u4e45\u4fdd\u6301<\/p>\n<ul>\n<li>\u5f53\u8fc7\u671f\u65f6\u95f4\u79fb\u9664\u6210\u529f\u65f6\uff0c\u8fd4\u56de 1<\/li>\n<li>\u5982\u679c key \u4e0d\u5b58\u5728\u6216 key \u6ca1\u6709\u8bbe\u7f6e\u8fc7\u671f\u65f6\u95f4\uff0c\u8fd4\u56de 0<\/li>\n<\/ul>\n<h3>pttl key<\/h3>\n<p>\u4ee5\u6beb\u79d2\u4e3a\u5355\u4f4d\u8fd4\u56de key \u7684\u5269\u4f59\u7684\u8fc7\u671f\u65f6\u95f4<\/p>\n<ul>\n<li>\u5f53 key \u4e0d\u5b58\u5728\u65f6\uff0c\u8fd4\u56de -2<\/li>\n<li>\u5f53 key \u5b58\u5728\u4f46\u6ca1\u6709\u8bbe\u7f6e\u5269\u4f59\u751f\u5b58\u65f6\u95f4\u65f6\uff0c\u8fd4\u56de -1<\/li>\n<li>\u5426\u5219\uff0c\u4ee5\u6beb\u79d2\u4e3a\u5355\u4f4d\uff0c\u8fd4\u56de key \u7684\u5269\u4f59\u751f\u5b58\u65f6\u95f4<\/li>\n<\/ul>\n<h3>ttl key<\/h3>\n<p>\u4ee5\u79d2\u4e3a\u5355\u4f4d\uff0c\u8fd4\u56de\u7ed9\u5b9a key \u7684\u5269\u4f59\u751f\u5b58\u65f6\u95f4(TTL, time to live)<\/p>\n<h3>randomkey<\/h3>\n<p>\u4ece\u5f53\u524d\u6570\u636e\u5e93\u4e2d\u968f\u673a\u8fd4\u56de\u4e00\u4e2a key<\/p>\n<h3>rename key newkey<\/h3>\n<p>\u4fee\u6539 key \u7684\u540d\u79f0<\/p>\n<p>\u5f53<code>OLD_KEY_NAME<\/code>\u548c<code>NEW_KEY_NAME<\/code>\u76f8\u540c\uff0c\u6216\u8005<code>OLD_KEY_NAME<\/code>\u4e0d\u5b58\u5728\u65f6\uff0c\u8fd4\u56de\u4e00\u4e2a\u9519\u8bef\u3002\u5f53<code>NEW_KEY_NAME<\/code>\u5df2\u7ecf\u5b58\u5728\u65f6\uff0cRENAME \u547d\u4ee4\u5c06\u8986\u76d6\u65e7\u503c<\/p>\n<h3>renamenx key newkey<\/h3>\n<p>\u4ec5\u5f53 newkey \u4e0d\u5b58\u5728\u65f6\uff0c\u5c06 key \u6539\u540d\u4e3a newkey<\/p>\n<h3>scan cursor [MATCH pattern] [COUNT count]<\/h3>\n<p>Redis Scan \u547d\u4ee4\u7528\u4e8e\u8fed\u4ee3\u6570\u636e\u5e93\u4e2d\u7684\u6570\u636e\u5e93\u952e\u3002<\/p>\n<p>SCAN \u547d\u4ee4\u662f\u4e00\u4e2a\u57fa\u4e8e\u6e38\u6807\u7684\u8fed\u4ee3\u5668\uff0c\u6bcf\u6b21\u88ab\u8c03\u7528\u4e4b\u540e\uff0c\u90fd\u4f1a\u5411\u7528\u6237\u8fd4\u56de\u4e00\u4e2a\u65b0\u7684\u6e38\u6807\uff0c\u7528\u6237\u5728\u4e0b\u6b21\u8fed\u4ee3\u65f6\u9700\u8981\u4f7f\u7528\u8fd9\u4e2a\u65b0\u6e38\u6807\u4f5c\u4e3a SCAN \u547d\u4ee4\u7684\u6e38\u6807\u53c2\u6570\uff0c\u4ee5\u6b64\u6765\u5ef6\u7eed\u4e4b\u524d\u7684\u8fed\u4ee3\u8fc7\u7a0b\u3002<\/p>\n<p>SCAN \u8fd4\u56de\u4e00\u4e2a\u5305\u542b\u4e24\u4e2a\u5143\u7d20\u7684\u6570\u7ec4\uff0c\u7b2c\u4e00\u4e2a\u5143\u7d20\u662f\u7528\u4e8e\u8fdb\u884c\u4e0b\u4e00\u6b21\u8fed\u4ee3\u7684\u65b0\u6e38\u6807\uff0c\u800c\u7b2c\u4e8c\u4e2a\u5143\u7d20\u5219\u662f\u4e00\u4e2a\u6570\u7ec4\uff0c\u8fd9\u4e2a\u6570\u7ec4\u4e2d\u5305\u542b\u4e86\u6240\u6709\u88ab\u8fed\u4ee3\u7684\u5143\u7d20\u3002\u5982\u679c\u65b0\u6e38\u6807\u8fd4\u56de 0 \u8868\u793a\u8fed\u4ee3\u5df2\u7ed3\u675f\u3002<\/p>\n<p>\u76f8\u5173\u547d\u4ee4\uff1a<\/p>\n<ul>\n<li>SSCAN \u547d\u4ee4\u7528\u4e8e\u8fed\u4ee3\u96c6\u5408\u952e\u4e2d\u7684\u5143\u7d20<\/li>\n<li>HSCAN \u547d\u4ee4\u7528\u4e8e\u8fed\u4ee3\u54c8\u5e0c\u952e\u4e2d\u7684\u952e\u503c\u5bf9<\/li>\n<li>ZSCAN \u547d\u4ee4\u7528\u4e8e\u8fed\u4ee3\u6709\u5e8f\u96c6\u5408\u4e2d\u7684\u5143\u7d20\uff08\u5305\u62ec\u5143\u7d20\u6210\u5458\u548c\u5143\u7d20\u5206\u503c\uff09<\/li>\n<\/ul>\n<p><strong>\u8bed\u6cd5<\/strong><\/p>\n<p>redis scan \u547d\u4ee4\u57fa\u672c\u8bed\u6cd5\u5982\u4e0b\uff1a<\/p>\n<pre><code class=\"language-bash\">scan cursor [MATCH pattern] [COUNT count]<\/code><\/pre>\n<ul>\n<li>cursor &#8211; \u6e38\u6807<\/li>\n<li>pattern &#8211; \u5339\u914d\u7684\u6a21\u5f0f<\/li>\n<li>count &#8211; \u6307\u5b9a\u4ece\u6570\u636e\u96c6\u91cc\u8fd4\u56de\u591a\u5c11\u5143\u7d20\uff0c\u9ed8\u8ba4\u503c\u4e3a 10<\/li>\n<\/ul>\n<pre><code class=\"language-bash\">redis 127.0.0.1:6379&gt; scan 0   # \u4f7f\u7528 0 \u4f5c\u4e3a\u6e38\u6807\uff0c\u5f00\u59cb\u65b0\u7684\u8fed\u4ee3\n1) &quot;17&quot;                        # \u7b2c\u4e00\u6b21\u8fed\u4ee3\u65f6\u8fd4\u56de\u7684\u6e38\u6807\n2)  1) &quot;key:12&quot;\n    2) &quot;key:8&quot;\n    3) &quot;key:4&quot;\n    4) &quot;key:14&quot;\n    5) &quot;key:16&quot;\n    6) &quot;key:17&quot;\n    7) &quot;key:15&quot;\n    8) &quot;key:10&quot;\n    9) &quot;key:3&quot;\n   10) &quot;key:7&quot;\n   11) &quot;key:1&quot;\nredis 127.0.0.1:6379&gt; scan 17  # \u4f7f\u7528\u7684\u662f\u7b2c\u4e00\u6b21\u8fed\u4ee3\u65f6\u8fd4\u56de\u7684\u6e38\u6807 17 \u5f00\u59cb\u65b0\u7684\u8fed\u4ee3\n1) &quot;0&quot;\n2) 1) &quot;key:5&quot;\n   2) &quot;key:18&quot;\n   3) &quot;key:0&quot;\n   4) &quot;key:2&quot;\n   5) &quot;key:19&quot;\n   6) &quot;key:13&quot;\n   7) &quot;key:6&quot;\n   8) &quot;key:9&quot;\n   9) &quot;key:11&quot;<\/code><\/pre>\n<h3>type key<\/h3>\n<p>\u8fd4\u56de key \u6240\u50a8\u5b58\u7684\u503c\u7684\u7c7b\u578b<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Redis \u952e(key) Redis \u952e\u547d\u4ee4\u7528\u4e8e\u7ba1\u7406 redis \u7684\u952e\u3002 \u8bed\u6cd5 Redis \u952e\u547d\u4ee4\u7684\u57fa\u672c\u8bed\u6cd5\u5982 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[],"class_list":["post-255","post","type-post","status-publish","format-standard","hentry","category-redis"],"_links":{"self":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/255","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/comments?post=255"}],"version-history":[{"count":0,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/255\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/media?parent=255"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/categories?post=255"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/tags?post=255"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}