{"id":3206,"date":"2019-05-05T17:50:17","date_gmt":"2019-05-05T09:50:17","guid":{"rendered":"https:\/\/damogame.cn\/wordpress\/?p=3206"},"modified":"2019-05-05T17:50:17","modified_gmt":"2019-05-05T09:50:17","slug":"redis%e5%ba%94%e7%94%a8%e4%b8%89%ef%bc%9a%e4%bd%8d%e5%9b%be","status":"publish","type":"post","link":"https:\/\/i007.cc\/wordpress\/archives\/3206","title":{"rendered":"Redis\u5e94\u7528\u4e09\uff1a\u4f4d\u56fe"},"content":{"rendered":"<div class=\"info\"><a href=\"https:\/\/www.jianshu.com\/p\/2eb093b0adf5\">\u539f\u6587\u5730\u5740<\/a><\/div>\n<div><\/div>\n<div class=\"show-content\" data-note-content=\"\">\n<div class=\"show-content-free\">\n<p>\u5728\u6211\u4eec\u5e73\u65f6\u5f00\u53d1\u4e2d\uff0c\u4f1a\u6709\u4e00\u4e9b\u5e03\u5c14\u578b\u6570\u636e\u9700\u8981\u5b58\u53d6\u3002\u6bd4\u5982\u4f60\u5728\u5f88\u591a\u7761\u7720\u8f6f\u4ef6\u91cc\u4f1a\u770b\u5230\u65e9\u8d77\u6253\u5361\u7684\u6d3b\u52a8\uff0c\u90a3\u4e48\u5b83\u5c31\u9700\u8981\u8bb0\u5f55\u7528\u6237\u7684\u7b7e\u5230\u8bb0\u5f55\uff0c\u7b7e\u4e86\u5c31\u662f1\uff0c\u6ca1\u7b7e\u662f0\u3002\u5982\u679c\u4f7f\u7528\u666e\u901a\u7684key\/value\uff0c\u6bcf\u4e2a\u7528\u6237\u8981\u8bb0\u5f55365\u4e2a\uff0c\u5f53\u7528\u6237\u5343\u4e07\u3001\u4e0a\u4ebf\u7684\u65f6\u5019\uff0c\u65e0\u7591\u9700\u8981\u7684\u5b58\u50a8\u7a7a\u95f4\u65f6\u975e\u5e38\u60ca\u4eba\u7684\u3002<\/p>\n<p>\u4e3a\u4e86\u89e3\u51b3\u7c7b\u4f3c\u7684\u8fd9\u79cd\u9700\u8981\u5b58\u53d6\u5927\u6570\u636e\u91cf\u7684\u5e03\u5c14\u7c7b\u578b\u95ee\u9898\uff0credis\u63d0\u4f9b\u4e86\u4f4d\u56fe\u6570\u636e\u7ed3\u6784\uff0c\u8fd9\u6837\u6bcf\u5929\u7684\u7b7e\u5230\u8bb0\u5f55\u53ea\u5360\u636e\u4e00\u4e2a\u4f4d\uff0c365\u4e2a\u4f4d\u53ea\u9700\u898146\u4e2a\u5b57\u8282\u5373\u53ef\uff0c\u8fd9\u5c31\u5927\u5927\u8282\u7ea6\u4e86\u5b58\u50a8\u7a7a\u95f4\u3002<\/p>\n<div class=\"image-package\">\n<div class=\"image-container\">\n<div class=\"image-container-fill\"><\/div>\n<div class=\"image-view\" data-width=\"512\" data-height=\"64\"><img decoding=\"async\" class=\"\" src=\"https:\/\/upload-images.jianshu.io\/upload_images\/7856459-160f423bb71ddb0e.gif?imageMogr2\/auto-orient\/strip%7CimageView2\/2\/w\/512\/format\/webp\" data-original-src=\"\/\/upload-images.jianshu.io\/upload_images\/7856459-160f423bb71ddb0e.gif\" data-original-width=\"512\" data-original-height=\"64\" data-original-format=\"image\/gif\" data-original-filesize=\"28880\" \/><\/div>\n<\/div>\n<\/div>\n<p>\u4f4d\u56fe\uff0c\u5176\u5b9e\u5c31\u662fbyte\u6570\u7ec4\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u666e\u901a\u7684 get\/set \u76f4\u63a5\u83b7\u53d6\u548c\u8bbe\u7f6e\u6574\u4e2a\u4f4d\u56fe\u7684\u5185\u5bb9\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528\u4f4d\u56fe\u64cd\u4f5c getbit\/setbit \u7b49\u5c06 byte \u6570\u7ec4\u770b\u6210\u300c\u4f4d\u6570\u7ec4\u300d\u6765\u5904\u7406\u3002<\/p>\n<h3>\u57fa\u672c\u4f7f\u7528<\/h3>\n<p>Redis \u7684\u4f4d\u6570\u7ec4\u662f\u81ea\u52a8\u6269\u5c55\uff0c\u5982\u679c\u8bbe\u7f6e\u4e86\u67d0\u4e2a\u504f\u79fb\u4f4d\u7f6e\u8d85\u51fa\u4e86\u73b0\u6709\u7684\u5185\u5bb9\u8303\u56f4\uff0c\u5c31\u4f1a\u81ea\u52a8\u5c06\u4f4d\u6570\u7ec4\u8fdb\u884c\u96f6\u6269\u5145\u3002<\/p>\n<p>\u6bd4\u5982\uff0c\u6211\u4eec\u8981\u4f7f\u7528\u4f4d\u64cd\u4f5c\u5c06\u5b57\u7b26\u4e32\u8bbe\u7f6e\u4e3ahello\uff0c\u90a3\u4e48\u6211\u4eec\u8981\u5f97\u5230hello\u7684\u4e8c\u8fdb\u5236<\/p>\n<\/div>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">public void toBinary(){\r\n    String str = \"hello\";\r\n    char[] strChar=str.toCharArray();\r\n    String result=\"\";\r\n    for(int i=0;i&lt;strChar.length;i++){\r\n        result +=Integer.toBinaryString(strChar[i])+ \" \";\r\n    }\r\n    System.out.println(result);\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<div class=\"show-content-free\">\n<p>\u5bf9\u4e8epython\u7528\u6237\u6765\u8bb2\uff0c\u65e0\u7591\u662f\u975e\u5e38\u65b9\u4fbf\u7684<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">&gt;&gt;&gt; bin(ord('h'))\r\n'0b1101000'   # \u9ad8\u4f4d -&gt; \u4f4e\u4f4d\r\n&gt;&gt;&gt; bin(ord('e'))\r\n'0b1100101'\r\n&gt;&gt;&gt; bin(ord('l'))\r\n'0b1101100'\r\n&gt;&gt;&gt; bin(ord('l'))\r\n'0b1101100'\r\n&gt;&gt;&gt; bin(ord('o'))\r\n'0b1101111'<\/pre>\n<p>&nbsp;<\/p>\n<p>\u8fd9\u91cc\u6211\u4eec\u62ffh\u4f5c\u4e3a\u4f8b\u5b50\uff0ch\uff0801101000\uff09\u9700\u8981\u8f6c1\u7684\u5c31\u662f1\/2\/4\u4f4d\uff0c\u4f4d\u6570\u7ec4\u7684\u987a\u5e8f\u548c\u5b57\u7b26\u7684\u4f4d\u987a\u5e8f\u662f\u76f8\u53cd\u7684\u3002<\/p>\n<\/div>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">127.0.0.1:6379&gt; setbit s 1 1\r\n(integer) 0\r\n127.0.0.1:6379&gt; setbit s 2 1\r\n(integer) 0\r\n127.0.0.1:6379&gt; setbit s 4 1\r\n(integer) 0<\/pre>\n<p>&nbsp;<\/p>\n<div class=\"show-content-free\">\n<p>\u8fd9\u79cd\u4f4d\u64cd\u4f5c\u7684\u65b9\u5f0f\u662f\u96f6\u5b58\u3002\u96f6\u5b58\u5c31\u662f\u4f7f\u7528setbit\u5bf9\u4f4d\u8fdb\u884c\u9010\u4e2a\u8bbe\u7f6e\uff0c\u6574\u5b58\u5c31\u662f\u4f7f\u7528\u5b57\u7b26\u4e32\u4e00\u6b21\u6027\u586b\u5145\u5168\u90e8\u4f4d\u6570\u7ec4\uff0c\u8986\u76d6\u65e7\u6570\u7ec4\u3002\u5f53\u7136\u8fd8\u6709\u96f6\u53d6\u548c\u6574\u53d6\uff0c\u9053\u7406\u7c7b\u4f3c\uff0c\u76f4\u63a5\u7528set\u548cget\u5373\u53ef\u3002<\/p>\n<h3>\u7edf\u8ba1\u548c\u67e5\u627e<\/h3>\n<p>Redis \u63d0\u4f9b\u4e86\u4e24\u79cd\u6307\u4ee4\uff1a<\/p>\n<ul>\n<li>bitcount \u7528\u6765\u7edf\u8ba1\u6307\u5b9a\u4f4d\u7f6e\u8303\u56f4\u5185 1 \u7684\u4e2a\u6570<\/li>\n<li>bitpos \u7528\u6765\u67e5\u627e\u6307\u5b9a\u8303\u56f4\u5185\u51fa\u73b0\u7684\u7b2c\u4e00\u4e2a 0 \u6216 1\u3002<\/li>\n<\/ul>\n<p>\u6211\u4eec\u53ef\u4ee5\u7528bitcount\u7edf\u8ba1\u7528\u6237\u4e00\u5171\u7b7e\u5230\u989d\u591a\u5c11\u5929\uff0c\u901a\u8fc7bitpos\u67e5\u627e\u7528\u6237\u4ece\u90a3\u4e00\u5929\u5f00\u59cb\u7b2c\u4e00\u6b21\u7b7e\u5230\u3002\u5982\u679c\u6307\u5b9a\u4e86\u8303\u56f4\u53c2\u6570[start,end]\uff0c\u5c31\u53ef\u4ee5\u7edf\u8ba1\u5728\u67d0\u4e2a\u65f6\u95f4\u8303\u56f4\u5185\u7528\u6237\u7b7e\u5230\u4e86\u591a\u5c11\u5929\uff0c\u7528\u6237\u81ea\u67d0\u5929\u4ee5\u540e\u7684\u54ea\u5929\u5f00\u59cb\u7b7e\u5230\u3002<\/p>\n<\/div>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">127.0.0.1:6379&gt; set a hello\r\nOK\r\n127.0.0.1:6379&gt; bitcount a\r\n(integer) 21\r\n127.0.0.1:6379&gt; bitcount a 0 0  # \u7b2c\u4e00\u4e2a\u5b57\u7b26\u4e2d 1 \u7684\u4f4d\u6570\r\n(integer) 3\r\n127.0.0.1:6379&gt; bitcount a 0 1  # \u524d\u4e24\u4e2a\u5b57\u7b26\u4e2d 1 \u7684\u4f4d\u6570\r\n(integer) 7\r\n127.0.0.1:6379&gt; bitpos a 0  # \u7b2c\u4e00\u4e2a 0 \u4f4d\r\n(integer) 0\r\n127.0.0.1:6379&gt; bitpos a 1  # \u7b2c\u4e00\u4e2a 1 \u4f4d\r\n(integer) 1\r\n127.0.0.1:6379&gt; bitpos a 1 1 1  # \u4ece\u7b2c\u4e8c\u4e2a\u5b57\u7b26\u7b97\u8d77\uff0c\u7b2c\u4e00\u4e2a 1 \u4f4d\r\n(integer) 9\r\n127.0.0.1:6379&gt; bitpos a 1 2 2  # \u4ece\u7b2c\u4e09\u4e2a\u5b57\u7b26\u7b97\u8d77\uff0c\u7b2c\u4e00\u4e2a 1 \u4f4d\r\n(integer) 17<\/pre>\n<p>&nbsp;<\/p>\n<div class=\"show-content-free\">\n<p>start \u548c end \u53c2\u6570\u662f\u5b57\u8282\u7d22\u5f15\uff0c\u4e5f\u5c31\u662f\u8bf4\u6307\u5b9a\u7684\u4f4d\u8303\u56f4\u5fc5\u987b\u662f8\u7684\u500d\u6570\uff0c\u800c\u4e0d\u80fd\u4efb\u610f\u6307\u5b9a\u3002\u5982\u679c\u6211\u4eec\u60f3\u8981\u8ba1\u7b97\u51fa\u67d0\u4e2a\u6708\u5185\u7528\u6237\u7b7e\u5230\u591a\u5c11\u5929\uff0c\u6211\u4eec\u5c31\u5f97\u5c06\u8fd9\u4e2a\u6708\u6240\u798f\u5676\u7684\u5b57\u8282\u5185\u5bb9\u5168\u90e8\u53d6\u51fa\u6765 (getrange \u53ef\u4ee5\u53d6\u51fa\u5b57\u7b26\u4e32\u7684\u5b50\u4e32) \uff0c\u518d\u7edf\u8ba1\u3002<\/p>\n<h3>bitfield<\/h3>\n<p>\u524d\u9762\u6211\u4eec\u7528\u4e86setbit\/getbit\u5bf9\u4f4d\u8fdb\u884c\u64cd\u4f5c\uff0c\u5982\u679c\u6211\u4eec\u60f3\u4e00\u6b21\u6027\u64cd\u4f5c\u591a\u4e2a\u4f4d\uff0c\u90a3\u4e48\u5c31\u5f97\u7528\u5230\u4e86bitfield\u3002<\/p>\n<p>bitfield \u6709\u4e09\u4e2a\u5b50\u6307\u4ee4\uff0c\u5206\u522b\u662f get\/set\/incrby\uff0c\u5b83\u4eec\u90fd\u53ef\u4ee5\u5bf9\u6307\u5b9a\u4f4d\u7247\u6bb5\u8fdb\u884c\u8bfb\u5199\uff0c\u4f46\u662f\u6700\u591a\u53ea\u80fd\u5904\u7406 64 \u4e2a\u8fde\u7eed\u7684\u4f4d\uff0c\u5982\u679c\u8d85\u8fc7 64 \u4f4d\uff0c\u5c31\u5f97\u4f7f\u7528\u591a\u4e2a\u5b50\u6307\u4ee4\uff0cbitfield \u53ef\u4ee5\u4e00\u6b21\u6267\u884c\u591a\u4e2a\u5b50\u6307\u4ee4\u3002<\/p>\n<\/div>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">127.0.0.1:6379&gt; bitfield w get u4 0 get u3 2 get i4 0 get i3 2\r\n1) (integer) 6\r\n2) (integer) 5\r\n3) (integer) 6\r\n4) (integer) -3\r\n127.0.0.1:6379&gt; bitfield w set u8 8 97  # \u4ece\u7b2c 8 \u4e2a\u4f4d\u5f00\u59cb\uff0c\u5c06\u63a5\u4e0b\u6765\u7684 8 \u4e2a\u4f4d\u7528\u65e0\u7b26\u53f7\u6570 97 \u66ff\u6362\r\n1) (integer) 101\r\n127.0.0.1:6379&gt; get w\r\n\"hallo\"\r\n127.0.0.1:6379&gt; set w hello\r\nOK\r\n127.0.0.1:6379&gt; bitfield w incrby u4 2 1  # \u4ece\u7b2c\u4e09\u4e2a\u4f4d\u5f00\u59cb\uff0c\u5bf9\u63a5\u4e0b\u6765\u7684 4 \u4f4d\u65e0\u7b26\u53f7\u6570 +1\r\n1) (integer) 11\r\n127.0.0.1:6379&gt; bitfield w incrby u4 2 1\r\n1) (integer) 12\r\n127.0.0.1:6379&gt; bitfield w incrby u4 2 1\r\n1) (integer) 13\r\n127.0.0.1:6379&gt; bitfield w incrby u4 2 1\r\n1) (integer) 14\r\n127.0.0.1:6379&gt; bitfield w incrby u4 2 1\r\n1) (integer) 15\r\n127.0.0.1:6379&gt; bitfield w incrby u4 2 1  # \u6ea2\u51fa\u6298\u8fd4\u4e86\r\n1) (integer) 0<\/pre>\n<p>&nbsp;<\/p>\n<div class=\"show-content-free\">\n<p>\u5173\u4e8e\u4f4d\u56fe\uff0c\u5176\u5b9e\u7528\u7684\u5e76\u4e0d\u591a\uff0c\u5927\u5bb6\u6709\u4e2a\u5370\u8c61\u5373\u53ef\u3002<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u539f\u6587\u5730\u5740 \u5728\u6211\u4eec\u5e73\u65f6\u5f00\u53d1\u4e2d\uff0c\u4f1a\u6709\u4e00\u4e9b\u5e03\u5c14<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[],"tags":[119],"class_list":["post-3206","post","type-post","status-publish","format-standard","hentry","tag-03-"],"_links":{"self":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/3206","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/comments?post=3206"}],"version-history":[{"count":0,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/3206\/revisions"}],"wp:attachment":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/media?parent=3206"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/categories?post=3206"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/tags?post=3206"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}