{"id":47834,"date":"2022-07-19T09:56:48","date_gmt":"2022-07-19T01:56:48","guid":{"rendered":"http:\/\/www.xyryd.com\/?p=47834"},"modified":"2022-07-19T09:56:50","modified_gmt":"2022-07-19T01:56:50","slug":"php-redis-zset%e6%9c%89%e5%ba%8f%e9%9b%86%e5%90%88","status":"publish","type":"post","link":"http:\/\/www.xyryd.com\/47834.html","title":{"rendered":"PHP Redis – zSet(\u6709\u5e8f\u96c6\u5408)"},"content":{"rendered":"\n

\u6709\u5e8f\u96c6\u5408\u4e0e\u96c6\u5408\u4e00\u6837\uff0cstring\u7c7b\u578b\u5143\u7d20\u7684\u96c6\u5408\uff0c\u4e0d\u5141\u8bb8\u91cd\u590d\u7684\u6210\u5458\u3002<\/p>\n\n\n\n

\u6709\u5e8f\u96c6\u5408\uff0c\u6bcf\u4e2a\u5143\u7d20\u90fd\u4f1a\u5173\u8054\u4e00\u4e2a double \u7c7b\u578b\u7684\u5206\u6570\u3002Redis \u901a\u8fc7\u5206\u6570\u4e3a\u96c6\u5408\u7684\u6210\u5458\u8fdb\u884c\u4ece\u5c0f\u5230\u5927\u7684\u6392\u5e8f<\/p>\n\n\n\n

\u6709\u5e8f\u96c6\u5408\u7684\u6210\u5458\u662f\u552f\u4e00\u7684\uff0c\u4f46\u5206\u6570 (score) \u53ef\u4ee5\u91cd\u590d\u3002<\/p>\n\n\n\n

\u96c6\u5408\u662f\u901a\u8fc7\u54c8\u5e0c\u8868\u5b9e\u73b0\u7684\uff0c \u96c6\u5408\u4e2d\u6700\u5927\u7684\u6210\u5458\u6570\u4e3a 232<\/sup> – 1 (4294967295, \u6bcf\u4e2a\u96c6\u5408\u53ef\u5b58\u50a840\u591a\u4ebf\u4e2a\u6210\u5458)\u3002<\/p>\n\n\n\n

\u6dfb\u52a0\u5143\u7d20(zAdd)<\/p>\n\n\n\n

\/\/ zAdd(key,increment,value)
$redis->zAdd('score', 550, '\u8bed\u6587');\n$redis->zAdd('score', 66, '\u9ad8\u6570');\n$redis->zAdd('score', 77, '\u516c\u5171\u82f1\u8bed');\n$redis->zAdd('score', 88, '\u8ba1\u7b97\u673a\u7ec4\u6210\u539f\u7406',99,'Java\u7a0b\u5e8f\u8bbe\u8ba1');<\/pre>\n\n\n\n

\u5143\u7d20\u5206\u503c\u589e\u51cf(zIncrBy)<\/p>\n\n\n\n

\/\/ zIncrBy(key,increment,value);increment\u503c\u53ef\u4e3a\u6b63\/\u8d1f\u503c\n$redis->zIncrBy('score', -10, '\u8bed\u6587');
$redis->zAdd('score', 10, '\u9ad8\u6570');\u3000\u3000<\/pre>\n\n\n\n

\u83b7\u53d6\u6392\u884c(zRevRange)<\/p>\n\n\n\n

\/\/ \u6839\u636e\u6392\u5e8f\u540e\u7684\u6570\u636e,\u5347\u5e8f\u548c\u964d\u5e8f\u7684\u5217\u8868\u83b7\u53d6\n$redis->zRevRange('score', 0, 2);<\/pre>\n\n\n\n

\u83b7\u53d6\u6307\u96c6\u5408\u4e2d\u6210\u5458\u6392\u540d(zRank,zRevRank)<\/p>\n\n\n\n

\/\/ \u8fd4\u56de\u6709\u5e8f\u96c6\u5408\u4e2d\u6307\u5b9a\u6210\u5458\u7684\u6392\u540d\u3002\u6309\u5206\u6570\u503c\u9012\u51cf\u6392\u5e8f\u3002\u5206\u6570\u503c\u6700\u5927\u8005\u6392\u540d\u4e3a0\u3002\n$redis->zRevRank('score','\u8bed\u6587');
\/\/ \u8fd4\u56de\u6709\u5e8f\u96c6\u5408\u4e2d\u6307\u5b9a\u6210\u5458\u7684\u6392\u540d\uff0c\u6309\u5206\u6570\u503c\u9012\u589e\u6392\u5e8f\u3002\u5206\u6570\u503c\u6700\u5c0f\u8005\u6392\u540d\u4e3a0\u3002
$redis->zRank('score', \u5386\u53f2);<\/pre>\n\n\n\n

\u83b7\u53d6\u6307\u5b9a\u7d22\u5f15\u533a\u95f4\u5185\u7684\u6210\u5458(Zrange,zReverseRange)<\/p>\n\n\n\n

\/\/ Zrange('set_key', start, end,[true]) \u3002 true:\u662f\u5426\u8fd4\u56de\u5404\u4e2a\u5143\u7d20\u7684\u5206\u6570\u503c\uff0c\u9ed8\u8ba4\u4e3afalse\n\/\/ \u6210\u5458\u6309\u5206\u6570\u503c\u9012\u589e\u6392\u5e8f\u3002\u5177\u6709\u76f8\u540c\u5206\u6570\u503c\u7684\u6210\u5458\u6309\u5b57\u5178\u5e8f\u5012\u5e8f\u6392\u5217\u3002\n\/\/ start \u548c stop \u4ee5 0 \u8868\u793a\u6709\u5e8f\u96c6\u7b2c\u4e00\u4e2a\u6210\u5458\uff0c\u4ee5 -1 \u8868\u793a\u6700\u540e\u4e00\u4e2a\u6210\u5458\uff0c -2 \u8868\u793a\u5012\u6570\u7b2c\u4e8c\u4e2a\u6210\u5458\uff0c\u4ee5\u6b64\u7c7b\u63a8\u3002\n$redis->Zrange('score',0,-1,true);\n\/\/ zReverseRange('set_key', start, end,[true]) \u6210\u5458\u6309\u5206\u6570\u503c\u9012\u51cf\u6392\u5e8f\uff0c\u5206\u6570\u503c\u76f8\u540c\u7684\u5219\u6309\u5b57\u5178\u5e8f\u7684\u5012\u5e8f\u6392\u5e8f
$redis->zReverseRange('score',0,-1,true);<\/pre>\n\n\n\n

\u83b7\u53d6\u6307\u5b9a\u5206\u503c\u533a\u95f4\u7684\u5143\u7d20(zRangeByScore,zRevRangeByScore)<\/p>\n\n\n\n

\/\/ zRangeByScore(key,min,max,[withscores]|[LIMIT offset count])
$redis->zRangeByScore('score',60,90,['withscores' => true]);
\/\/ zRevRangeByScore(key,max,min,[withscores]|[LIMIT offset count])
$redis->zRevRangeByScore('score',90,60,['withscores' => true]);
\u6ce8\uff1a
\u3000\u3000['WITHSCORES' => true] \u663e\u793a\u6574\u4e2a\u6709\u5e8f\u96c6\u5408\u6210\u5458\u7684 score \u503c
\u3000\u3000['LIMIT' =>[0,2]] \u81ea\u5b9a\u4e49\u8fd4\u56de\u7684\u6709\u5e8f\u96c6\u5408\u8d77\u59cb\u4f4d\u7f6e\u53ca\u6761\u6570<\/pre>\n\n\n\n

\u83b7\u53d6\u5143\u7d20\u4e2a\u6570(zCard)<\/p>\n\n\n\n

$redis->zCard('score');<\/pre>\n\n\n\n

\u83b7\u53d6\u6307\u5b9a\u5206\u503c\u533a\u95f4\u5185\u7684\u5143\u7d20\u4e2a\u6570(zCount)<\/p>\n\n\n\n

$redis->zCount('score', 60, 90);<\/pre>\n\n\n\n

\u83b7\u53d6\u6307\u5b9a\u5143\u7d20\u7684 \u6570\u636e (zScore)<\/p>\n\n\n\n

$redis->zScore('score','\u5386\u53f2')<\/pre>\n\n\n\n

\u8ba1\u7b97\u6709\u5e8f\u96c6\u5408\u4e2d\u6307\u5b9a\u533a\u95f4\u5185\u6210\u5458\u6570\u91cf(Zlexcount)<\/p>\n\n\n\n

\/\/ Zlexcount('key_name','[value1','[value2')\n$redis->Zlexcount('score','[\u82f1\u8bed','[\u8bed\u6587');<\/pre>\n\n\n\n

\u8ba1\u7b97\u7ed9\u5b9a\u7684\u6709\u5e8f\u96c6\u7684\u4ea4\u96c6\u6570\u91cf(Zinterstore)<\/p>\n\n\n\n

\/\/ \u8ba1\u7b97\u7ed9\u5b9a\u7684\u4e00\u4e2a\u6216\u591a\u4e2a\u6709\u5e8f\u96c6\u7684\u4ea4\u96c6\uff0c\u5176\u4e2d\u7ed9\u5b9a key \u7684\u6570\u91cf\u5fc5\u987b\u4ee5 numkeys \u53c2\u6570\u6307\u5b9a\uff0c\u5e76\u5c06\u8be5\u7ed3\u679c\u96c6\u50a8\u5b58\u5230\u6307\u5b9a\u96c6\u5408
\/\/ \u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u7ed3\u679c\u96c6\u4e2d\u67d0\u4e2a\u6210\u5458\u7684\u5206\u6570\u503c\u662f\u6240\u6709\u7ed9\u5b9a\u96c6\u4e0b\u8be5\u6210\u5458\u5206\u6570\u503c\u4e4b\u548c
\/\/ Zinterstore('zset_Key',['keys'|'keyt'])
$resdis->Zinterstore('score',['score1']);<\/pre>\n\n\n\n

\u8ba1\u7b97\u7ed9\u5b9a\u7684\u4e00\u4e2a\u6216\u591a\u4e2a\u6709\u5e8f\u96c6\u7684\u5e76\u96c6\/\u4ea4\u96c6(Zunionstore\/zinterstore)<\/p>\n\n\n\n

\/\/\u8ba1\u7b97\u7ed9\u5b9a\u4e00\u4e2a\u6216\u591a\u4e2a\u6709\u5e8f\u96c6\u7684\u4ea4\u96c6\uff0c\u5143\u7d20\u76f8\u52a0\uff0c\u5e76\u5c06\u5176\u5b58\u50a8\u5230\u76ee\u7684\u6709\u5e8f\u96c6\u4e2d
$redis->zinterstore(‘new_zset_key’,[‘score’,’score1′]);
\/\/\u8ba1\u7b97\u7ed9\u5b9a\u4e00\u4e2a\u6216\u591a\u4e2a\u6709\u5e8f\u96c6\u7684\u5e76\u96c6\uff0c\u5143\u7d20\u76f8\u52a0\uff0c\u5e76\u5c06\u5176\u5b58\u50a8\u5230\u76ee\u7684\u6709\u5e8f\u96c6\u4e2d
$redis->zunionstore(‘new_zset_key’,[‘score’, ‘score1’]);<\/p>\n\n\n\n

\u5220\u9664\u5143\u7d20(zRem)<\/p>\n\n\n\n

\/\/ \u5220\u9664\u6709\u5e8f\u96c6\u4e2d\u7684\u4e00\u4e2a\u6216\u591a\u4e2a\u6210\u5458\uff0c\u5ffd\u7565\u4e0d\u5b58\u5728\u7684\u6210\u5458\u3002\u8fd4\u56de\u5220\u9664\u7684\u5143\u7d20\u4e2a\u6570
$redis->zRem('score', '\u5386\u53f2','\u76c8\u4f59');<\/pre>\n\n\n\n

\u6839\u636e\u6392\u540d\u5220\u9664(zRemRangeByRank)<\/p>\n\n\n\n

\/\/ \u81ea 0 \u5f00\u59cb
$redis->zRemRangeByRank('score', 0, 2);<\/pre>\n\n\n\n

\u6839\u636e\u6307\u5b9a\u5206\u503c\u533a\u95f4\u5220\u9664(zRemRangeByScore)<\/p>\n\n\n\n

\/\/\u5220\u9664score\u5728[60, 90]\u4e4b\u95f4\u7684\u5143\u7d20\n$redis->zRemRangeByScore('score', 60, 90);<\/pre>\n","protected":false},"excerpt":{"rendered":"

\u6709\u5e8f\u96c6\u5408\u4e0e\u96c6\u5408\u4e00\u6837\uff0cstring\u7c7b\u578b\u5143\u7d20\u7684\u96c6\u5408\uff0c\u4e0d\u5141\u8bb8\u91cd\u590d\u7684\u6210\u5458\u3002 \u6709\u5e8f\u96c6\u5408\uff0c\u6bcf\u4e2a\u5143\u7d20\u90fd\u4f1a\u5173\u8054\u4e00\u4e2a doubl […]<\/p>\n","protected":false},"author":1,"featured_media":43329,"comment_status":"open","ping_status":"closed","sticky":false,"template":"single-with-sidebar","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[13,29],"aioseo_notices":[],"_links":{"self":[{"href":"http:\/\/www.xyryd.com\/wp-json\/wp\/v2\/posts\/47834"}],"collection":[{"href":"http:\/\/www.xyryd.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.xyryd.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.xyryd.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.xyryd.com\/wp-json\/wp\/v2\/comments?post=47834"}],"version-history":[{"count":0,"href":"http:\/\/www.xyryd.com\/wp-json\/wp\/v2\/posts\/47834\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.xyryd.com\/wp-json\/wp\/v2\/media\/43329"}],"wp:attachment":[{"href":"http:\/\/www.xyryd.com\/wp-json\/wp\/v2\/media?parent=47834"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.xyryd.com\/wp-json\/wp\/v2\/categories?post=47834"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.xyryd.com\/wp-json\/wp\/v2\/tags?post=47834"}],"curies":[{"name":"wp","href":"http:\/\/api.w.org\/{rel}","templated":true}]}}