{"id":201369,"date":"2025-05-10T10:11:57","date_gmt":"2025-05-10T02:11:57","guid":{"rendered":"https:\/\/server.hk\/cnblog\/201369\/"},"modified":"2025-05-10T10:11:57","modified_gmt":"2025-05-10T02:11:57","slug":"redis%e5%87%a0%e4%b9%8e%e6%89%80%e6%9c%89%e5%91%bd%e4%bb%a4%e9%83%bd%e5%9c%a8%e8%bf%99%e4%ba%86%ef%bc%8c%e8%bf%98%e8%af%b4%e4%bd%a0%e4%b8%8d%e4%bc%9a%ef%bc%9f","status":"publish","type":"post","link":"https:\/\/server.hk\/cnblog\/201369\/","title":{"rendered":"Redis\u51e0\u4e4e\u6240\u6709\u547d\u4ee4\u90fd\u5728\u8fd9\u4e86\uff0c\u8fd8\u8bf4\u4f60\u4e0d\u4f1a\uff1f"},"content":{"rendered":"<p><b><\/b> <\/p>\n<h1>Redis\u51e0\u4e4e\u6240\u6709\u547d\u4ee4\u90fd\u5728\u8fd9\u4e86\uff0c\u8fd8\u8bf4\u4f60\u4e0d\u4f1a\uff1f<\/h1>\n<p><span style=\"cursor: pointer\"><i><\/i>\u6536\u85cf<\/span> <\/p>\n<p>\u6765\u5230golang\u5b66\u4e60\u7f51\u7684\u5927\u5bb6\uff0c\u76f8\u4fe1\u90fd\u662f\u7f16\u7a0b\u5b66\u4e60\u7231\u597d\u8005\uff0c\u5e0c\u671b\u5728\u8fd9\u91cc\u5b66\u4e60\u6570\u636e\u5e93\u76f8\u5173\u7f16\u7a0b\u77e5\u8bc6\u3002\u4e0b\u9762\u672c\u7bc7\u6587\u7ae0\u5c31\u6765\u5e26\u5927\u5bb6\u804a\u804a\u300aRedis\u51e0\u4e4e\u6240\u6709\u547d\u4ee4\u90fd\u5728\u8fd9\u4e86\uff0c\u8fd8\u8bf4\u4f60\u4e0d\u4f1a\uff1f\u300b\uff0c\u4ecb\u7ecd\u4e00\u4e0b\u5b57\u7b26\u4e32\u3001Redis\u3001\u6570\u636e\u5e93\uff0c\u5e0c\u671b\u5bf9\u5927\u5bb6\u7684\u77e5\u8bc6\u79ef\u7d2f\u6709\u6240\u5e2e\u52a9\uff0c\u52a9\u529b\u5b9e\u6218\u5f00\u53d1\uff01<\/p>\n<p><strong>&nbsp;<\/strong><\/p>\n<\/p>\n<p><strong>\u5bc6\u7801\u767b\u5f55\uff1a<\/strong><\/p>\n<p>1. redis-cli -h 127.0.0.1 -p 6379 -a flyvar<\/p>\n<p><strong>\u5b57\u7b26\u4e32\u7c7b\u578b\uff1a<\/strong><\/p>\n<p>1. set name ericzhao \/\/ set key value [EX seconds] [PX milliseconds] [NX|XX]<\/p>\n<p>2. redis 127.0.0.1:6379&gt; SET KEY VALUE [EX seconds] [PX milliseconds] [NX|XX]EX seconds \u2212 \u8bbe\u7f6e\u6307\u5b9a\u7684\u5230\u671f\u65f6\u95f4(\u4ee5\u79d2\u4e3a\u5355\u4f4d)\u3002PX milliseconds &#8211; \u8bbe\u7f6e\u6307\u5b9a\u7684\u5230\u671f\u65f6\u95f4(\u4ee5\u6beb\u79d2\u4e3a\u5355\u4f4d)\u3002NX &#8211; \u4ec5\u5728\u952e\u4e0d\u5b58\u5728\u65f6\u8bbe\u7f6e\u952e\u3002XX &#8211; \u53ea\u6709\u5728\u952e\u5df2\u5b58\u5728\u65f6\u624d\u8bbe\u7f6e\u3002<\/p>\n<p>3. redis 127.0.0.1:6379&gt; SET mykey &#8220;redis&#8221; EX 60 NX \/\/ \u5728\u952e\u201cmykey\u201d\u4e0d\u5b58\u5728\u65f6\uff0c\u8bbe\u7f6e\u952e\u7684\u503c\uff0c\u5230\u671f\u65f6\u95f4\u4e3a60\u79d2<\/p>\n<p>4. get name<\/p>\n<p>5. keys * \/\/ \u67e5\u770b\u6240\u6709key<\/p>\n<p>6. getrange name 0 1 \/\/ getrange key start end \u83b7\u53d6\u5b57\u7b26\u4e32\u4e2d\u7684\u5b50\u5b57\u7b26<\/p>\n<p>7. getset name zhao \/\/ getset key value \u5c06key\u7684\u503c\u8bbe\u7f6e\u6210value\uff0c\u8fd4\u56dekey\u7684\u65e7\u503c\u3002\u6ca1\u6709\u65e7\u503c\uff0c\u8fd4\u56denil<\/p>\n<p>8. mget name age \/\/ mget key [key2&#8230;] \u83b7\u53d6\u591a\u4e2akey\u7684\u503c<\/p>\n<p>9. mset name zhao age 18 \/\/ \u8bbe\u7f6e\u591a\u4e2akey-value\uff0c\u539f\u5b50\u6027<\/p>\n<p>10. setex name 1 zhao \/\/ setex key seconds value \u8bbe\u7f6ekey\u7684\u8fc7\u671f\u65f6\u95f4\u4e3aseconds\u79d2\u3010setnx\u4e0d\u662f\u539f\u5b50\u7684\u5417?\u3011<\/p>\n<p>11. psetex name 1 zhao \/\/ psetex key milliseconds value \u8bbe\u7f6ekey\u7684\u8fc7\u671f\u65f6\u95f4\u4e3amilliseconds\u6beb\u79d2<\/p>\n<p>12. setnx name zhao \/\/ setnx key value \u5f53key\u4e0d\u5b58\u5728\u65f6\u8bbe\u7f6ekey\u7684\u503c\u4e3avalue<\/p>\n<p>13. msetnx name zhao age 10 \/\/ msetnx key value [key1 value1&#8230;] \u6279\u91cf\u5f53\u4e0d\u5b58\u5728key\u65f6\u8bbe\u7f6e<\/p>\n<p>14. strlen name \/\/ strlen key \u83b7\u53d6key\u7684\u5b57\u7b26\u4e32\u503c\u7684\u957f\u5ea6<\/p>\n<p>15. incr age \/\/ incr key \u5c06key\u4e2d\u7684\u6570\u5b57\u503c+1<\/p>\n<p>16. incrby age 7 \/\/ incrby key increment \u5c06key\u4e2d\u7684\u6570\u5b57\u503c+increment<\/p>\n<p>17. decr age<\/p>\n<p>18. decrby age 7<\/p>\n<p>19. append name wei \/\/ append key value \u5982\u679ckey\u5b58\u5728\u4e14\u662f\u5b57\u7b26\u4e32\uff0c\u5c06value\u6700\u4f73\u5230key\u7684\u503c\u672b\u5c3e\uff0c\u8fd4\u56dekey\u7684\u5b57\u7b26\u4e32\u503c\u7684\u957f\u5ea6<\/p>\n<p>20. del age \/\/ del key \u5220\u9664\u5355\u4e2akey<\/p>\n<p>21. redis-cli keys &#8220;*&#8221; | xargs redis-cli del \/\/ \u5220\u9664\u591a\u4e2akey<\/p>\n<p>22. flushdb \/\/ \u5220\u9664\u5f53\u524d\u6570\u636e\u5e93\u4e2d\u7684\u6240\u6709Key<\/p>\n<p>23. flushall \/\/ \u5220\u9664\u6240\u6709\u6570\u636e\u5e93\u4e2d\u7684key<\/p>\n<p><strong>\u54c8\u5e0c\u7c7b\u578b\uff1a<\/strong><\/p>\n<p>1. hset person family-name zhao<\/p>\n<p>2. hget people family-name<\/p>\n<p>3. hmset people family-name zhao first-name wei \/\/ hmset key field value [field value &#8230;] \u6bcf\u4e2a\u54c8\u5e0c\u53ef\u4ee5\u5b58\u50a8\u591a\u8fbe2^32 &#8211; 1\u4e2a\u5065-\u503c\u5bf9<\/p>\n<p>4. 127.0.0.1:6379&gt; hmset people family-name zhao first-name weiOK127.0.0.1:6379&gt; hget people family-name&#8221;zhao&#8221;127.0.0.1:6379&gt; hgetall people1) &#8220;family-name&#8221;2) &#8220;zhao&#8221;3) &#8220;first-name&#8221;4) &#8220;wei&#8221;<\/p>\n<p>5. hmget people family-name first-name \/\/ hmget key field1 [field2 &#8230;] \u83b7\u53d6key\u4e2d\u591a\u4e2a\u5b57\u6bb5\u7684\u503c<\/p>\n<p>6. hgetall people \/\/ hgetall key \u83b7\u53d6key\u4e2d\u6240\u6709\u5b57\u6bb5\u548c\u503c<\/p>\n<p>7. hdel people family-name \/\/ hdel key field1 [field2 &#8230;] \u5220\u9664\u591a\u4e2a\u54c8\u5e0c\u5b57\u6bb5<\/p>\n<p>8. hexists people family-name \/\/ hexists key field \u67e5\u770bkey\u4e2dfield\u5b57\u6bb5\u662f\u5426\u5b58\u5728<\/p>\n<p>9. hincrby people age 12 \/\/ hincrby key field increment \u4e3akey\u4e2dfield\u7684\u6574\u6570\u503c\u52a0\u4e0a\u589e\u91cfincrement<\/p>\n<p>10. hkeys people \/\/ hkeys key \u83b7\u53d6\u54c8\u5e0ckey\u4e2d\u6240\u6709\u7684\u5b57\u6bb5<\/p>\n<p>11. hvals people \/\/ hvals key \u83b7\u53d6\u54c8\u5e0ckey\u4e2d\u6240\u6709\u7684\u503c<\/p>\n<p>12. hlen people \/\/ hlen key \u83b7\u53d6\u54c8\u5e0ckey\u4e2d\u5b57\u6bb5\u6570\u91cf<\/p>\n<p>13. hsetnx people age 18 \/\/ hsetnx key field value \u5728\u54c8\u5e0ckey\u4e2d\uff0c\u5f53field\u4e0d\u5b58\u5728\u65f6\u8bbe\u7f6efield\u503c<\/p>\n<p><strong>\u5217\u8868\u7c7b\u578b\uff1a<\/strong><\/p>\n<p>1. lpush friend qian yun yin \/\/ lpush key value [value &#8230;] \u5411\u5217\u8868\u5934\u90e8\u6dfb\u52a0\u591a\u4e2a\u5143\u7d20<\/p>\n<p>2. lpop friend \/\/ \u5f39\u51fa\u5217\u8868\u5de6\u8fb9\u7684\u4e00\u4e2a\u5143\u7d20<\/p>\n<p>3. rpush friend qian yun yin<\/p>\n<p>4. rpop friend<\/p>\n<p>5. lpushx friend2 qian \/\/ \u4e3a\u5df2\u5b58\u5728\u7684\u5217\u8868\u6dfb\u52a0\u5143\u7d20\uff0c\u4e0d\u5b58\u5728\u5219\u4e0d\u6dfb\u52a0<\/p>\n<p>6. rpushx friend2 yun<\/p>\n<p>7. llen friend \/\/ \u67e5\u770bfriend\u5217\u8868\u7684\u957f\u5ea6<\/p>\n<p>8. lindex friend 1 \/\/ \u6839\u636e\u7d22\u5f15\u4ecefriend\u5217\u8868\u83b7\u53d6\u5143\u7d20<\/p>\n<p>9. blpop friend10 \/\/ blpop key [key &#8230;] timeout \u5220\u9664\u5e76\u83b7\u53d6\u5217\u8868\u4e2d\u7684\u7b2c\u4e00\u4e2a\u5143\u7d20\uff0c\u6216\u963b\u585e\uff0c\u76f4\u5230\u6709\u4e00\u4e2a\u5143\u7d20\u53ef\u7528<\/p>\n<p>10. brpop friend 10 \/\/ brpop key [key &#8230;] timeout \u5220\u9664\u5e76\u83b7\u53d6\u5217\u8868\u4e2d\u7684\u6700\u540e\u4e00\u4e2a\u5143\u7d20\uff0c\u6216\u963b\u585e\uff0c\u76f4\u5230\u6709\u4e00\u4e2a\u5143\u7d20\u53ef\u7528<\/p>\n<p>11. linsert friend BEFORE yun yin \/\/ linsert key BEFORE|AFTER pivot value \u5728\u4e00\u4e2a\u5143\u7d20\u4e4b\u524d|\u4e4b\u540e\u63d2\u5165\u5143\u7d20<\/p>\n<p>12. lrange friend 0 1 \/\/ lrange key start stop \u4ece\u5217\u8868\u4e2d\u83b7\u53d6\u7d22\u5f150~1\u7684\u5143\u7d20<\/p>\n<p>13. lset friend 1 yin \/\/ lset key index value \u6839\u636e\u7d22\u5f15\u8bbe\u7f6e\u5143\u7d20<\/p>\n<p>14. ltrim friend 0 1 \/\/ \u8ba9friend\u5217\u8868\u53ea\u4fdd\u7559\u533a\u95f4\u5185\u7684\u5143\u7d20<\/p>\n<p><strong>\u96c6\u5408\u7c7b\u578b\uff1a<\/strong><\/p>\n<p>1. sadd address home school campany<\/p>\n<p>2. scard address \/\/ \u83b7\u53d6address\u7684\u6210\u5458\u6570\u91cf<\/p>\n<p>3. srem address school campany \/\/ \u5220\u9664address\u4e2d\u7684school\u548ccampany\u5143\u7d20<\/p>\n<p>4. smembers address \/\/ \u8fd4\u56deaddress\u4e2d\u6240\u6709\u5143\u7d20<\/p>\n<p>5. spop address \/\/ \u968f\u673a\u8fd4\u56de\u4e00\u4e2a\u5143\u7d20<\/p>\n<p>6. srandmember address 2 \/\/ srandmember key [count] \u968f\u673a\u8fd4\u56de\u96c6\u5408\u4e2d\u4e00\u4e2a\u6216\u591a\u4e2a\u5143\u7d20<\/p>\n<p>7. smove address location home \/\/ smove source destination member\uff0c\u5c06\u4e00\u4e2a\u96c6\u5408\u4e2d\u7684\u6307\u5b9a\u5143\u7d20\u79fb\u5230\u53e6\u4e00\u4e2a\u96c6\u5408\u4e2d<\/p>\n<p>8. sismember address shanghai \/\/ sismember key member\uff0c\u5224\u65admember\u662f\u5426\u96c6\u5408key\u4e2d\u7684\u5143\u7d20<\/p>\n<p>9. sunion address location \/\/ sunion key [key&#8230;] \u8fd4\u56de\u6240\u6709\u7ed9\u5b9a\u96c6\u5408\u7684\u5e76\u96c6<\/p>\n<p>10. sunionstore location address address1 \/\/ sunionstore destination key [key&#8230;] \u8fd4\u56de\u6240\u6709\u7ed9\u5b9a\u96c6\u5408\u7684\u5e76\u96c6\u5e76\u5b58\u50a8\u5728destination\u4e2d<\/p>\n<p>11. sinter address location \/\/ sinter key [key&#8230;] \u8fd4\u56de\u6240\u6709\u7ed9\u5b9a\u96c6\u5408\u7684\u4ea4\u96c6<\/p>\n<p>12. sinterstore location address address1 \/\/ sinterstore destination key [key&#8230;] \u8fd4\u56de\u6240\u6709\u7ed9\u5b9a\u96c6\u5408\u7684\u4ea4\u96c6\u5e76\u5b58\u50a8\u5728destination\u4e2d<\/p>\n<p>13. sdiff address location \/\/ sdiff key [key&#8230;] \u8fd4\u56de\u6240\u6709\u7ed9\u5b9a\u96c6\u5408\u7684\u5dee\u96c6<\/p>\n<p>14. sdiffstore location address address1 \/\/ sdiffstore destination key [key&#8230;] \u8fd4\u56de\u6240\u6709\u7ed9\u5b9a\u96c6\u5408\u7684\u5dee\u96c6\u5e76\u5b58\u50a8\u5728destination\u4e2d<\/p>\n<p><strong>\u6709\u5e8f\u96c6\u5408\u7c7b\u578b\uff1a<\/strong><\/p>\n<p>1. zadd locations 1 home 2 school \/\/ zadd key [NX|XX] [CH] [INCR] score member [score member &#8230;] \u6dfb\u52a0home\u548cschool\u5230\u6709\u5e8f\u96c6\u5408locations\u4e2d\u3002\u5206\u6570\u8d8a\u5c0f\u7684\u6392\u5728\u8d8a\u524d\u9762\uff0c-inf\u548c+inf\u5206\u522b\u8868\u793a\u8d1f\u65e0\u7a77\u548c\u6b63\u65e0\u7a77\u3002<\/p>\n<p>2. zcard locations \/\/ \u83b7\u53d6\u6709\u5e8f\u96c6\u5408locations\u7684\u6210\u5458\u6570\u91cf\u3002<\/p>\n<p>3. zcount locations 0 30 \/\/ zcount key min max\uff0c\u83b7\u5f97locations\u4e2d\u5728\u6307\u5b9a\u5206\u6570\u533a\u95f4\u7684\u6210\u5458\u6570\u91cf\uff0cmin\u548cmax\u90fd\u662finclusive\u3002<\/p>\n<p>4. zincrby locations 2 home \/\/ zincrby key increment member\uff0c\u5bf9\u6709\u5e8f\u96c6\u5408\u4e2d\u6307\u5b9a\u6210\u5458\u7684\u5206\u6570\u589e\u52a0increment\u3002<\/p>\n<p>5. zscore locations home \/\/ zscore key member\uff0c\u83b7\u53d6locations\u4e2dhome\u7684\u5206\u6570\u3002<\/p>\n<p>6. zrange locations 0 2 withscores \/\/ zrange key start stop [WITHSCORES]\uff0c\u901a\u8fc7\u7d22\u5f15\u83b7\u53d6locations\u4e2d\u7684\u5143\u7d20\uff0cwithscores\u8868\u793a\u8f93\u51fa\u65f6\u5143\u7d20\u5e26\u4e0a\u5206\u6570\u3002<\/p>\n<p>7. zrangebyscore locations 1 2 withscores limit 2 2 \/\/ zrangebyscore key min max [WITHSCORES] [LIMIT offset count]\uff0c\u8f93\u51fa\u6307\u5b9a\u5206\u6570\u533a\u95f4\u5185\u7684\u5143\u7d20\u3002<\/p>\n<p>8. zrem locations home school \/\/ zrem key member [member &#8230;]\uff0c\u5220\u9664locations\u4e2d\u7684\u5143\u7d20\u3002<\/p>\n<p>9. zremrangebyscore locations 1 2 \/\/ zremrangebyscore key min max\uff0c\u5220\u9664\u6307\u5b9a\u5206\u6570\u533a\u95f4\u5185\u7684\u5143\u7d20\uff0c\u8fd4\u56de\u5220\u9664\u7684\u5143\u7d20\u6570\u91cf\u3002<\/p>\n<p>10. zrank locations home \/\/ zrank key member\uff0c\u83b7\u53d6\u5143\u7d20\u7684\u6392\u540d(\u5206\u6570\u4ece\u5c0f\u5230\u5927\u6392\u5e8f\uff0c\u6392\u540d\u4ece0\u5f00\u59cb)\u3002<\/p>\n<p>11. zrevrank locations home \/\/ zrevrank key member\uff0c\u83b7\u53d6\u5143\u7d20\u7684\u9006\u5e8f\u6392\u540d(\u5206\u6570\u4ece\u5927\u5230\u5c0f\u6392\u5e8f)\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Redis\u51e0\u4e4e\u6240\u6709\u547d\u4ee4\u90fd\u5728\u8fd9\u4e86\uff0c&#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-201369","post","type-post","status-publish","format-standard","hentry","category-database"],"_links":{"self":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts\/201369","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=201369"}],"version-history":[{"count":0,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts\/201369\/revisions"}],"wp:attachment":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/media?parent=201369"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/categories?post=201369"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/tags?post=201369"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}