{"id":331,"date":"2012-09-16T21:00:40","date_gmt":"2012-09-16T13:00:40","guid":{"rendered":"http:\/\/www.royalwzy.com\/?p=331"},"modified":"2014-04-11T14:17:34","modified_gmt":"2014-04-11T06:17:34","slug":"redis%e5%ad%a6%e4%b9%a003-%e6%8e%92%e5%ba%8f%e6%93%8d%e4%bd%9c","status":"publish","type":"post","link":"http:\/\/www.royalwzy.com\/?p=331","title":{"rendered":"Redis\u5b66\u4e6003&#8211;\u6392\u5e8f\u64cd\u4f5c"},"content":{"rendered":"<div>Redis\u7684\u6392\u5e8f\u64cd\u4f5c<\/p>\n<div>\n<ol>\n<li>redis\u652f\u6301\u5bf9list, set\u548csorted set\u5143\u7d20\u7684\u6392\u5e8f;<\/li>\n<li>\u6392\u5e8f\u547d\u4ee4SORT\u7684\u8bed\u6cd5:SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern &#8230;]] [ASC|DESC] [ALPHA] [STORE destination];<\/li>\n<li>sort key\u00a0[ASC|DESC] [ALPHA]:\n<ol>\n<li>sort key:\u4e0d\u52a0\u4efb\u4f55\u9009\u9879\u65f6\u5c31\u662f\u7b80\u5355\u7684\u5bf9\u5217\u8868\u81ea\u8eab\u5143\u7d20\u6392\u5e8f,\u5e76\u8fd4\u56de\u6392\u5e8f\u7ed3\u679c,\u5217\u8868\u4e2d\u7684\u503c\u53ea\u80fd\u662f\u6570\u5b57;<\/li>\n<li>ASC:sort\u9ed8\u8ba4\u7684\u6392\u5e8f\u65b9\u5f0f,\u5373\u5347\u5e8f\u6392\u5217;<\/li>\n<li>DESC:\u662f\u9006\u5e8f\u6392\u5217;<\/li>\n<li>ALPHA:\u5982\u679c\u5217\u8868\u4e2d\u662f\u5b57\u7b26\u4e32\u6216\u8005\u6570\u5b57\u7684\u8bdd,\u9700\u8981\u4f7f\u7528alpha\u9009\u9879\u6309\u7167\u5b57\u6bcd\u987a\u5e8f\u6392\u5217;ASC|DESC\u53ef\u4ee5\u548cALPHA\u8fde\u7528;<\/li>\n<\/ol>\n<\/li>\n<li>[LIMIT offset count]:\u7528\u4e8e\u5206\u9875\u663e\u793a,\u8868\u793a\u4eceoffset\u7684\u4f4d\u7f6e(\u4ece0\u5f00\u59cb),\u663e\u793acount\u4e2a\u8bb0\u5f55;<\/li>\n<li>[BY nosort]:\u4e0d\u6392\u5e8f,\u76f4\u63a5\u8fd4\u56delist, set\u6216\u8005sorted set\u4e2d\u5143\u7d20\u7684\u7269\u7406\u987a\u5e8f;<\/li>\n<li>[BY pattern]:\u4f7f\u7528\u5916\u90e8\u7684keys\u4f5c\u4e3a\u6743\u91cd\u6765\u5bf9list, set, sorted set\u4e2d\u7684\u5143\u7d20\u6392\u5e8f,\u4f46\u662f\u6743\u91cd\u7684\u540e\u7f00\u5fc5\u987b\u4e0e\u51e0\u4f55\u4e2d\u7684\u5143\u7d20\u4e00\u4e00\u5bf9\u5e94;<\/li>\n<li>[GET pattern &#8230;]:\u4ee5\u901a\u8fc7get\u9009\u9879\u53bb\u83b7\u53d6\u6307\u5b9apattern\u4f5c\u4e3a\u65b0key\u5bf9\u5e94\u7684\u503c;<\/li>\n<li>[STORE destination]:\u5982\u679c\u5bf9\u96c6\u5408\u7ecf\u5e38\u6309\u7167\u56fa\u5b9a\u7684\u6a21\u5f0f\u53bb\u6392\u5e8f,\u90a3\u4e48\u628a\u6392\u5e8f\u7ed3\u679c\u7f13\u5b58\u8d77\u6765\u4f1a\u51cf\u5c11cpu\u7684\u5f00\u9500,\u4f7f\u7528store\u9009\u9879\u53ef\u4ee5\u5c06\u6392\u5e8f\u5185\u5bb9\u4fdd\u5b58\u5230\u6307\u5b9akey\u4e2d,\u4fdd\u5b58\u7684\u7c7b\u578b\u662flist;<\/li>\n<li>\u5173\u4e8e\u6392\u5e8f\u7684\u4e24\u4e2a\u95ee\u9898\u53ca\u89e3\u51b3\u65b9\u6848:\n<ol>\n<li>\u5982\u679c\u6211\u4eec\u6709\u591a\u4e2aredis server\u7684\u8bdd,\u4e0d\u540c\u7684key\u53ef\u80fd\u5b58\u5728\u4e8e\u4e0d\u540c\u7684server\u4e0a,\u6bd4\u5982weight_3,weight_9,\u00a0weight_12,\u00a0weight_22\u5f88\u6709\u53ef\u80fd\u5206\u522b\u5728\u56db\u4e2a\u4e0d\u540c\u7684server\u4e0a\u5b58\u653e\u7740,\u8fd9\u79cd\u60c5\u51b5\u4f1a\u5bf9\u6392\u5e8f\u6027\u80fd\u9020\u6210\u5f88\u5927\u7684\u5f71\u54cd;\n<ol>\n<li>\u53ef\u4ee5\u901a\u8fc7key tag\u5c06\u9700\u8981\u6392\u5e8f\u7684key\u90fd\u653e\u5230\u540c\u4e00\u4e2aserver\u4e0a,\u7531\u4e8e\u5177\u4f53\u51b3\u5b9a\u54ea\u4e2akey\u5b58\u5728\u54ea\u4e2a\u670d\u52a1\u5668\u4e0a\u4e00\u822c\u90fd\u662f\u5728client\u7aefhash\u7684\u529e\u6cd5\u6765\u505a\u7684,\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u53ea\u5bf9key\u7684\u90e8\u5206\u8fdb\u884chash;<\/li>\n<li>\u4e3e\u4e2a\u4f8b\u5b50\u5047\u5982\u6211\u4eec\u7684client\u5982\u679c\u53d1\u73b0key\u4e2d\u5305\u542b[],\u90a3\u4e48\u53ea\u5bf9key\u4e2d[]\u5305\u542b\u7684\u5185\u5bb9\u8fdb\u884chash,\u6211\u4eec\u5c06weight_\u56db\u4e2a\u76f8\u5173\u7684key,[weight_]3,[weight_]9, [weight_]12, [weight_]22\u90fd\u8fd9\u6837\u547d\u540d,\u4e8e\u662fclient\u7a0b\u5e8f\u5c31\u4f1a\u628a\u4ed6\u4eec\u90fd\u653e\u5230\u540c\u4e00server\u4e0a;<\/li>\n<\/ol>\n<\/li>\n<li>\u5982\u679c\u8981sort\u7684\u96c6\u5408\u975e\u5e38\u5927\u7684\u8bdd\u6392\u5e8f\u5c31\u4f1a\u6d88\u8017\u5f88\u957f\u65f6\u95f4,\u7531\u4e8eredis\u5355\u7ebf\u7a0b\u7684,\u6240\u4ee5\u957f\u65f6\u95f4\u7684\u6392\u5e8f\u64cd\u4f5c\u4f1a\u963b\u585e\u5176\u4ed6client\u7684\u8bf7\u6c42;\n<ol>\n<li>\u901a\u8fc7\u4e3b\u4ece\u590d\u5236\u673a\u5236\u5c06\u6570\u636e\u590d\u5236\u5230\u591a\u4e2aslave\u4e0a,\u7136\u540e\u6211\u4eec\u53ea\u5728slave\u4e0a\u505a\u6392\u5e8f\u64cd\u4f5c,\u5e76\u8fdb\u53ef\u80fd\u7684\u5bf9\u6392\u5e8f\u7ed3\u679c\u7f13\u5b58;<\/li>\n<li>\u6216\u8005\u662f\u91c7\u7528sorted set\u5bf9\u9700\u8981\u6309\u67d0\u4e2a\u987a\u5e8f\u8bbf\u95ee\u7684\u96c6\u5408\u5efa\u7acb\u7d22\u5f15;<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\u5b9e\u9645\u4f7f\u7528\u7684\u573a\u666f\u53ca\u4f8b\u5b50;<\/li>\n<\/ol>\n<\/div>\n<div><\/div>\n<div>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;\u00a0sort key\u00a0[ASC|DESC] [ALPHA]\u00a0&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/div>\n<div>&#8212; 1.sort key;<\/div>\n<div>redis 127.0.0.1:6379&gt; lpush l1 12<br \/>\n(integer) 1<br \/>\nredis 127.0.0.1:6379&gt; lpush l1 3<br \/>\n(integer) 2<br \/>\nredis 127.0.0.1:6379&gt; lpush l1 22<br \/>\n(integer) 3<br \/>\nredis 127.0.0.1:6379&gt; lpush l1 9<br \/>\n(integer) 4<br \/>\nredis 127.0.0.1:6379&gt; sort l1<br \/>\n1) &#8220;3&#8221;<br \/>\n2) &#8220;9&#8221;<br \/>\n3) &#8220;12&#8221;<br \/>\n4) &#8220;22&#8221;<br \/>\nredis 127.0.0.1:6379&gt; sort l1 desc<br \/>\n1) &#8220;22&#8221;<br \/>\n2) &#8220;12&#8221;<br \/>\n3) &#8220;9&#8221;<br \/>\n4) &#8220;3&#8221;<\/div>\n<div><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(202).png\" width=\"898\" height=\"361\" \/><\/div>\n<div><\/div>\n<div>&#8212; 2.alpha;<\/div>\n<div>1.\u5bf9\u6570\u5b57\u6309\u7167\u5b57\u6bcd\u8868\u987a\u5e8f\u6392\u5e8f;<\/div>\n<div><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(203).png\" width=\"895\" height=\"180\" \/><\/div>\n<div>2.\u5b57\u7b26\u4e32\u6309\u7167\u5b57\u6bcd\u8868\u987a\u5e8f\u6392\u5e8f;<\/div>\n<div>redis 127.0.0.1:6379&gt; lpush l2 snda<br \/>\n(integer) 1<br \/>\nredis 127.0.0.1:6379&gt; lpush l2 tencent<br \/>\n(integer) 2<br \/>\nredis 127.0.0.1:6379&gt; lpush l2 baidu<br \/>\n(integer) 3<br \/>\nredis 127.0.0.1:6379&gt; lpush l2 taobao<br \/>\n(integer) 4<br \/>\nredis 127.0.0.1:6379&gt; sort l2 alpha<br \/>\n1) &#8220;baidu&#8221;<br \/>\n2) &#8220;snda&#8221;<br \/>\n3) &#8220;taobao&#8221;<br \/>\n4) &#8220;tencent&#8221;<br \/>\nredis 127.0.0.1:6379&gt; sort l2 desc alpha<br \/>\n1) &#8220;tencent&#8221;<br \/>\n2) &#8220;taobao&#8221;<br \/>\n3) &#8220;snda&#8221;<br \/>\n4) &#8220;baidu&#8221;<br \/>\nredis 127.0.0.1:6379&gt; sort l2<br \/>\n(error) ERR One or more scores can&#8217;t be converted into double<\/div>\n<div><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(204).png\" width=\"898\" height=\"370\" \/><\/div>\n<div>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;\u00a0sort key\u00a0[ASC|DESC] [ALPHA]\u00a0&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/div>\n<div><\/div>\n<div>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;\u00a0[LIMIT offset count]\u00a0&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/div>\n<div>\u83b7\u5f97l1\u96c6\u5408\u4e2d\u7b2c\u4e8c\u4e2a\u5b57\u7b26\u5f00\u59cb\u7684\u540e\u4e24\u4e2a\u503c;<\/div>\n<div>redis 127.0.0.1:6379&gt; sort l1<br \/>\n1) &#8220;3&#8221;<br \/>\n2) &#8220;9&#8221;<br \/>\n3) &#8220;12&#8221;<br \/>\n4) &#8220;22&#8221;<br \/>\nredis 127.0.0.1:6379&gt; sort l1 limit 1 2<br \/>\n1) &#8220;9&#8221;<br \/>\n2) &#8220;12&#8221;<br \/>\nredis 127.0.0.1:6379&gt; sort l1 limit 1 2 desc<br \/>\n1) &#8220;12&#8221;<br \/>\n2) &#8220;9&#8221;<\/div>\n<div><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(205).png\" width=\"896\" height=\"208\" \/><\/div>\n<div>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;\u00a0[LIMIT offset count]\u00a0&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/div>\n<div><\/div>\n<div>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;\u00a0[BY nosort]\u00a0&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/div>\n<div>li\u5217\u8868\u63d2\u5165\u7684\u65f6\u5019\u662f\u6309\u716712, 3, 22, 9\u7684\u987a\u5e8f\u63d2\u5165\u7684,\u4f46\u662f\u5b9e\u9645\u7684\u7269\u7406\u987a\u5e8f\u662f\u53cd\u5e8f\u7684,\u5373\u540e\u63d2\u5165\u7684\u5143\u7d20\u5728\u524d\u9762;<\/div>\n<div>redis 127.0.0.1:6379&gt; sort l1 by nosort<br \/>\n1) &#8220;9&#8221;<br \/>\n2) &#8220;22&#8221;<br \/>\n3) &#8220;3&#8221;<br \/>\n4) &#8220;12&#8221;<\/div>\n<div><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(206).png\" width=\"897\" height=\"95\" \/><\/div>\n<div>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;\u00a0[BY nosort]\u00a0&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/div>\n<div><\/div>\n<div>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;\u00a0[BY pattern]\u00a0&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/div>\n<div>redis 127.0.0.1:6379&gt; sort l1 by nosort<br \/>\n1) &#8220;9&#8221;<br \/>\n2) &#8220;22&#8221;<br \/>\n3) &#8220;3&#8221;<br \/>\n4) &#8220;12&#8221;<br \/>\nredis 127.0.0.1:6379&gt; set weight_3 1<br \/>\nOK<br \/>\nredis 127.0.0.1:6379&gt; set weight_12 2<br \/>\nOK<br \/>\nredis 127.0.0.1:6379&gt; set weight_22 3<br \/>\nOK<br \/>\nredis 127.0.0.1:6379&gt; set weight_9 4<br \/>\nOK<br \/>\nredis 127.0.0.1:6379&gt; sort l1 by weight_*<br \/>\n1) &#8220;3&#8221;<br \/>\n2) &#8220;12&#8221;<br \/>\n3) &#8220;22&#8221;<br \/>\n4) &#8220;9&#8221;<br \/>\nredis 127.0.0.1:6379&gt; sort l1 by weight_* desc<br \/>\n1) &#8220;9&#8221;<br \/>\n2) &#8220;22&#8221;<br \/>\n3) &#8220;12&#8221;<br \/>\n4) &#8220;3&#8221;<br \/>\nredis 127.0.0.1:6379&gt; set weight_22 5<br \/>\nOK<br \/>\nredis 127.0.0.1:6379&gt; sort l1 by weight_*<br \/>\n1) &#8220;3&#8221;<br \/>\n2) &#8220;12&#8221;<br \/>\n3) &#8220;9&#8221;<br \/>\n4) &#8220;22&#8221;<\/div>\n<div><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(207).png\" width=\"895\" height=\"558\" \/><\/div>\n<div>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;\u00a0[BY pattern]\u00a0&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/div>\n<div><\/div>\n<div>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;\u00a0[GET pattern &#8230;]\u00a0&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/div>\n<div>&#8212; 1.\u8fd4\u56depattern\u7684\u503c,\u6309\u7167pattern\u7684\u987a\u5e8f;<\/div>\n<div>redis 127.0.0.1:6379&gt; sort l1 by weight_*\u00a0 get weight_*<br \/>\n1) &#8220;1&#8221;<br \/>\n2) &#8220;2&#8221;<br \/>\n3) &#8220;4&#8221;<br \/>\n4) &#8220;5&#8221;<\/div>\n<div><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(208).png\" width=\"858\" height=\"93\" \/><\/div>\n<div><\/div>\n<div>&#8212; 2.\u901a\u8fc7#(#\u7279\u6b8a\u7b26\u53f7\u5f15\u7528\u7684\u662f\u539f\u59cb\u96c6\u5408)\u8fd4\u56de\u539f\u6765\u5217\u8868\u4e2d\u7684\u503c;<\/div>\n<div>redis 127.0.0.1:6379&gt; sort l1 by weight_* get weight_* get #<br \/>\n1) &#8220;1&#8221;<br \/>\n2) &#8220;3&#8221;<br \/>\n3) &#8220;2&#8221;<br \/>\n4) &#8220;12&#8221;<br \/>\n5) &#8220;4&#8221;<br \/>\n6) &#8220;9&#8221;<br \/>\n7) &#8220;5&#8221;<br \/>\n8) &#8220;22&#8221;<\/div>\n<div><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(209).png\" width=\"859\" height=\"162\" \/><\/div>\n<div><\/div>\n<div>&#8212; 3.\u5f15\u7528hash\u7c7b\u578b\u5b57\u6bb5\u7684\u8bdd\u9700\u8981\u4f7f\u7528-&gt;\u7b26\u53f7,\u5f53\u503c\u4e0d\u5b58\u5728\u5c31\u8fd4\u56denil;<\/div>\n<div>redis 127.0.0.1:6379&gt; hset h_3 id 1<br \/>\n(integer) 1<br \/>\nredis 127.0.0.1:6379&gt; hset h_22 id 2<br \/>\n(integer) 1<br \/>\nredis 127.0.0.1:6379&gt; hset h_9 id 3<br \/>\n(integer) 1<br \/>\nredis 127.0.0.1:6379&gt; hset h_10 id 4<br \/>\n(integer) 1<br \/>\nredis 127.0.0.1:6379&gt; sort l1 get h_*-&gt;id<br \/>\n1) &#8220;1&#8221;<br \/>\n2) &#8220;3&#8221;<br \/>\n3) (nil)<br \/>\n4) &#8220;2&#8221;<\/div>\n<div><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(210).png\" width=\"858\" height=\"239\" \/><\/div>\n<div>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;\u00a0[GET pattern &#8230;]\u00a0&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/div>\n<div><\/div>\n<div>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;\u00a0[STORE destination]\u00a0&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/div>\n<div>\u628a\u6392\u5e8f\u7684\u7ed3\u679c\u4fdd\u5b58\u5728\u4e00\u4e2alist\u4e2d;<\/div>\n<div>redis 127.0.0.1:6379&gt; sort l1<br \/>\n1) &#8220;3&#8221;<br \/>\n2) &#8220;9&#8221;<br \/>\n3) &#8220;12&#8221;<br \/>\n4) &#8220;22&#8221;<br \/>\nredis 127.0.0.1:6379&gt; sort l1 limit 1 2 store sl1<br \/>\n(integer) 2<br \/>\nredis 127.0.0.1:6379&gt; type sl1<br \/>\nlist<br \/>\nredis 127.0.0.1:6379&gt; lrange sl1 0 -1<br \/>\n1) &#8220;9&#8221;<br \/>\n2) &#8220;12&#8221;<br \/>\n<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(211).png\" width=\"859\" height=\"224\" \/><\/div>\n<div>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;\u00a0[STORE destination]\u00a0&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/div>\n<div><\/div>\n<div>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;\u00a0\u5b9e\u9645\u4f7f\u7528\u7684\u573a\u666f\u53ca\u4f8b\u5b50\u00a0&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/div>\n<div>&#8212; 1.kobe\u7684\u961f\u53cb\u5217\u8868,\u5b58\u653e\u961f\u53cb\u7684\u53f7\u7801uid;<\/div>\n<div>redis 127.0.0.1:6379&gt; sadd kobe:team:list 10<br \/>\n(integer) 1<br \/>\nredis 127.0.0.1:6379&gt; sadd kobe:team:list 12<br \/>\n(integer) 1<br \/>\nredis 127.0.0.1:6379&gt; sadd kobe:team:list 15<br \/>\n(integer) 1<br \/>\nredis 127.0.0.1:6379&gt; sadd kobe:team:list 16<br \/>\n(integer) 1<\/div>\n<div><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(212).png\" width=\"861\" height=\"167\" \/><\/div>\n<div><\/div>\n<div>&#8212; 2.\u7403\u5458\u7684\u6392\u5e8f\u89c4\u5219,\u5b58\u653e\u7403\u5458\u7684\u5f97\u5206;<\/div>\n<div>redis 127.0.0.1:6379&gt; set uid:sort:10 1000<br \/>\nOK<br \/>\nredis 127.0.0.1:6379&gt; set uid:sort:12 2000<br \/>\nOK<br \/>\nredis 127.0.0.1:6379&gt; set uid:sort:15 300<br \/>\nOK<br \/>\nredis 127.0.0.1:6379&gt; set uid:sort:16 2500<br \/>\nOK<\/div>\n<div><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(213).png\" width=\"858\" height=\"143\" \/><\/div>\n<div><\/div>\n<div>&#8212; 3.\u961f\u53cb\u7684\u4fe1\u606f;<\/div>\n<div>redis 127.0.0.1:6379&gt; set uid:10 &#8220;{&#8216;uid&#8217;:10,&#8217;name&#8217;:&#8217;Steve Nash&#8217;}&#8221;<br \/>\nOK<br \/>\nredis 127.0.0.1:6379&gt; set uid:12 &#8220;{&#8216;uid&#8217;:12,&#8217;name&#8217;:&#8217;Dwight Howard&#8217;}&#8221;<br \/>\nOK<br \/>\nredis 127.0.0.1:6379&gt; set uid:15 &#8220;{&#8216;uid&#8217;:15,&#8217;name&#8217;:&#8217;Ron Artest&#8217;}&#8221;<br \/>\nOK<br \/>\nredis 127.0.0.1:6379&gt; set uid:16 &#8220;{&#8216;uid&#8217;:16,&#8217;name&#8217;:&#8217;Pau Gasol&#8217;}&#8221;<br \/>\nOK<\/div>\n<div><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(214).png\" width=\"860\" height=\"148\" \/><\/div>\n<div><\/div>\n<div>&#8212; 4.\u6309\u7167\u5f97\u5206\u5bf9\u7403\u5458\u6392\u5e8f;<\/div>\n<div>redis 127.0.0.1:6379&gt; sort kobe:team:list by uid:sort:* get uid:*<br \/>\n1) &#8220;{&#8216;uid&#8217;:15,&#8217;name&#8217;:&#8217;Ron Artest&#8217;}&#8221;<br \/>\n2) &#8220;{&#8216;uid&#8217;:10,&#8217;name&#8217;:&#8217;Steve Nash&#8217;}&#8221;<br \/>\n3) &#8220;{&#8216;uid&#8217;:12,&#8217;name&#8217;:&#8217;Dwight Howard&#8217;}&#8221;<br \/>\n4) &#8220;{&#8216;uid&#8217;:16,&#8217;name&#8217;:&#8217;Pau Gasol&#8217;}&#8221;<\/div>\n<div><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(215).png\" width=\"861\" height=\"96\" \/><\/div>\n<div><\/div>\n<div>redis 127.0.0.1:6379&gt; sort kobe:team:list by uid:sort:* get uid:* get uid:sort:*<br \/>\n1) &#8220;{&#8216;uid&#8217;:15,&#8217;name&#8217;:&#8217;Ron Artest&#8217;}&#8221;<br \/>\n2) &#8220;300&#8221;<br \/>\n3) &#8220;{&#8216;uid&#8217;:10,&#8217;name&#8217;:&#8217;Steve Nash&#8217;}&#8221;<br \/>\n4) &#8220;1000&#8221;<br \/>\n5) &#8220;{&#8216;uid&#8217;:12,&#8217;name&#8217;:&#8217;Dwight Howard&#8217;}&#8221;<br \/>\n6) &#8220;2000&#8221;<br \/>\n7) &#8220;{&#8216;uid&#8217;:16,&#8217;name&#8217;:&#8217;Pau Gasol&#8217;}&#8221;<br \/>\n8) &#8220;2500&#8221;<\/div>\n<div><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(216).png\" width=\"859\" height=\"163\" \/><\/div>\n<div>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;\u00a0\u5b9e\u9645\u4f7f\u7528\u7684\u573a\u666f\u53ca\u4f8b\u5b50\u00a0&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Redis\u7684\u6392\u5e8f\u64cd\u4f5c redis\u652f\u6301\u5bf9list, set\u548csorted set\u5143\u7d20\u7684\u6392\u5e8f; \u6392\u5e8f\u547d\u4ee4SORT\u7684 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[25,26],"class_list":["post-331","post","type-post","status-publish","format-standard","hentry","category-nosql","tag-nosql","tag-redis"],"_links":{"self":[{"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/posts\/331","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=331"}],"version-history":[{"count":0,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/posts\/331\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=331"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=331"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=331"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}