{"id":267,"date":"2026-05-18T16:01:46","date_gmt":"2026-05-18T08:01:46","guid":{"rendered":"https:\/\/larkdrop.cafe\/?p=267"},"modified":"2026-05-18T16:01:47","modified_gmt":"2026-05-18T08:01:47","slug":"redis","status":"publish","type":"post","link":"https:\/\/larkdrop.cafe\/index.php\/2026\/05\/18\/redis\/","title":{"rendered":"Redis"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u5f15\u8a00<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"1-1-web\u53d1\u5c55\u5386\u7a0b\">Web\u53d1\u5c55\u5386\u7a0b<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fc4\u4eca\u4e3a\u6b62\uff0c\u4e92\u8054\u7f51\u7684\u53d1\u5c55\u5df2\u7ecf\u7ecf\u5386\u4e86\u4e24\u4e2a\u9636\u6bb5\uff1aWeb 1.0 \u548c Web 2.0\u3002<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">\u9636\u6bb5<\/th><th class=\"has-text-align-left\" data-align=\"left\">\u7279\u70b9<\/th><th class=\"has-text-align-left\" data-align=\"left\">\u4ee3\u8868<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Web 1.0<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u9759\u6001\u7f51\u7ad9\uff0c\u5355\u65b9\u9762\u4fe1\u606f\u4f20\u9012\uff0c\u65e0\u4e92\u52a8<\/td><td class=\"has-text-align-left\" data-align=\"left\">\u641c\u72d0\u3001\u65b0\u6d6a\u3001\u7f51\u6613<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Web 2.0<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u5185\u5bb9\u4e92\u52a8\uff0c\u7528\u6237\u6210\u4e3a\u5185\u5bb9\u63d0\u4f9b\u65b9<\/td><td class=\"has-text-align-left\" data-align=\"left\">\u5fae\u535a\u3001B\u7ad9\u3001\u6296\u97f3<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"1-2-\u4f20\u7edf\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u6311\u6218\">\u4f20\u7edf\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u6311\u6218<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fdb\u5165 Web 2.0 \u65f6\u4ee3\u540e\uff0c\u6570\u636e\u7206\u70b8\u5f0f\u589e\u957f\uff0c\u4f20\u7edf\u5173\u7cfb\u578b\u6570\u636e\u5e93\u9762\u4e34\u4ee5\u4e0b\u6311\u6218\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>High Performance &#8211; \u9ad8\u5e76\u53d1\u5199\u9700\u6c42<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Web 2.0 \u7f51\u7ad9\u9700\u8981\u6839\u636e\u7528\u6237\u4e2a\u6027\u5316\u4fe1\u606f\u5b9e\u65f6\u751f\u6210\u52a8\u6001\u9875\u9762\uff0c\u6570\u636e\u5e93\u5e76\u53d1\u8d1f\u8f7d\u6781\u9ad8\uff08\u6bcf\u79d2\u4e0a\u4e07\u6b21\u8bfb\u5199\u8bf7\u6c42\uff09\u3002\u5173\u7cfb\u578b\u6570\u636e\u5e93\u96be\u4ee5\u627f\u53d7\u5982\u6b64\u9ad8\u7684\u786c\u76d8 IO \u538b\u529b\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Huge Storage &#8211; \u6d77\u91cf\u6570\u636e\u5b58\u50a8<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5927\u578b SNS \u7f51\u7ad9\u6bcf\u5929\u4ea7\u751f\u6d77\u91cf\u7528\u6237\u52a8\u6001\u3002\u4ee5 FriendFeed \u4e3a\u4f8b\uff0c\u4e00\u4e2a\u6708\u5c31\u4ea7\u751f 2.5 \u4ebf\u6761\u52a8\u6001\u3002\u5728\u5355\u8868 2.5 \u4ebf\u6761\u8bb0\u5f55\u4e2d\u8fdb\u884c SQL \u67e5\u8be2\uff0c\u6548\u7387\u6781\u5176\u4f4e\u4e0b\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"1-3-nosql\u7684\u8bde\u751f\">NoSQL\u7684\u8bde\u751f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Web 2.0 \u5e94\u7528\u4e2d\uff0c\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u8bb8\u591a\u7279\u6027\u53cd\u800c\u6210\u4e3a\u8d1f\u62c5\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5f88\u591a\u5b9e\u65f6\u7cfb\u7edf\u4e0d\u8981\u6c42\u4e25\u683c\u7684\u4e8b\u52a1<\/li>\n\n\n\n<li>\u5bf9\u8bfb\u5199\u4e00\u81f4\u6027\u8981\u6c42\u8f83\u4f4e<\/li>\n\n\n\n<li>\u907f\u514d\u591a\u8868\u5173\u8054\u67e5\u8be2\uff0c\u591a\u4e3a\u5355\u8868\u4e3b\u952e\u67e5\u8be2<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u56e0\u6b64\uff0cNoSQL \u6570\u636e\u5e93\u5e94\u8fd0\u800c\u751f\u3002<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Redis \u662f\u5178\u578b\u7684 NoSQL \u6570\u636e\u5e93\uff0c\u4e0e\u4f20\u7edf\u5173\u7cfb\u578b\u6570\u636e\u5e93\u76f8\u6bd4\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u7eaf\u5185\u5b58\u5b58\u50a8<\/li>\n\n\n\n<li>Key-Value \u952e\u503c\u5bf9\u7ed3\u6784<\/li>\n\n\n\n<li>\u975e\u7ed3\u6784\u5316\u6570\u636e<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Redis\u7b80\u4ecb<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"2-1-\u4ec0\u4e48\u662fredis\">\u4ec0\u4e48\u662fRedis<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Redis<\/strong>\uff08Remote Dictionary Server\uff09\u662f\u4e00\u4e2a\u4f7f\u7528 C \u8bed\u8a00\u7f16\u5199\u7684\u3001\u5f00\u6e90\u7684\u3001\u652f\u6301\u7f51\u7edc\u7684\u3001\u57fa\u4e8e\u5185\u5b58\u7684\u3001\u53ef\u6301\u4e45\u5316\u7684 Key-Value \u975e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"2-2-redis\u6838\u5fc3\u7279\u70b9\">Redis\u6838\u5fc3\u7279\u70b9<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">\u7279\u6027<\/th><th class=\"has-text-align-left\" data-align=\"left\">\u8bf4\u660e<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>C\u8bed\u8a00\u7f16\u5199<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u6027\u80fd\u6781\u9ad8\uff0c\u5355\u673a\u53ef\u8fbe 10\u4e07+ QPS<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>\u5f00\u6e90\u514d\u8d39<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">GitHub: https:\/\/github.com\/redis<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>\u57fa\u4e8e\u5185\u5b58<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u6570\u636e\u5b58\u50a8\u5728\u5185\u5b58\u4e2d\uff0c\u8bfb\u5199\u901f\u5ea6\u6781\u5feb<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>\u53ef\u6301\u4e45\u5316<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u652f\u6301 RDB \u548c AOF \u4e24\u79cd\u6301\u4e45\u5316\u65b9\u5f0f<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Key-Value<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u4ee5\u952e\u503c\u5bf9\u65b9\u5f0f\u5b58\u50a8\u6570\u636e<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>\u652f\u6301\u7f51\u7edc<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u5ba2\u6237\u7aef\u901a\u8fc7\u7f51\u7edc\u8fde\u63a5\u670d\u52a1\u7aef<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>\u591a\u8bed\u8a00API<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u652f\u6301 Java\u3001Python\u3001Go\u3001Node.js \u7b49<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"2-3-\u53c2\u8003\u8d44\u6e90\"><strong>\u53c2\u8003\u8d44\u6e90<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u4e2d\u6587\u5b98\u7f51<\/strong>: https:\/\/www.redis.net.cn\/<\/li>\n\n\n\n<li><strong>\u547d\u4ee4\u53c2\u8003<\/strong>: http:\/\/doc.redisfans.com\/<\/li>\n\n\n\n<li><strong>\u5b98\u65b9\u6587\u6863<\/strong>: https:\/\/redis.io\/documentation<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u5b89\u88c5\u4e0e\u542f\u52a8<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u26a0\ufe0f&nbsp;<strong>\u6ce8\u610f<\/strong>: Redis \u5b98\u65b9\u4e0d\u652f\u6301 Windows \u64cd\u4f5c\u7cfb\u7edf\uff0c\u4f46 Windows \u56e2\u961f\u63d0\u4f9b\u4e86\u9002\u914d\u7248\u672c\u3002<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"3-1-windows\u5b89\u88c5\">Windows\u5b89\u88c5<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u4e0b\u8f7d<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ece GitHub \u4e0b\u8f7d Windows \u9002\u914d\u7248\u672c\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5730\u5740: https:\/\/github.com\/microsoftarchive\/redis\/releases<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u89e3\u538b<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u89e3\u538b\u540e\u76ee\u5f55\u7ed3\u6784\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>redis\/\n\u251c\u2500\u2500 redis-server.exe    # \u670d\u52a1\u7aef\u7a0b\u5e8f\n\u251c\u2500\u2500 redis-cli.exe       # \u5ba2\u6237\u7aef\u7a0b\u5e8f\n\u251c\u2500\u2500 redis.windows.conf  # \u914d\u7f6e\u6587\u4ef6\n\u2514\u2500\u2500 ...<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/118.25.99.91\/courses\/markdown\/image\/18-Redis-optimized\/image-20221019115320041.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/118.25.99.91\/courses\/markdown\/image\/18-Redis-optimized\/image-20221019115320041.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"Redis \u89e3\u538b\u76ee\u5f55\u793a\u610f\"\/><\/div><figcaption class=\"wp-element-caption\">Redis \u89e3\u538b\u76ee\u5f55\u793a\u610f<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u542f\u52a8\u670d\u52a1\u7aef<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u65b9\u5f0f1: \u4f7f\u7528\u9ed8\u8ba4\u914d\u7f6e\nredis-server.exe\n\n# \u65b9\u5f0f2: \u6307\u5b9a\u914d\u7f6e\u6587\u4ef6\uff08\u63a8\u8350\uff09\nredis-server.exe redis.windows.conf<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u542f\u52a8\u6210\u529f\u540e\u4f1a\u770b\u5230\u5982\u4e0b\u8f93\u51fa\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;*****] # Server initialized\n&#91;*****] * Ready to accept connections<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/118.25.99.91\/courses\/markdown\/image\/18-Redis-optimized\/image-20221020093334606.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/118.25.99.91\/courses\/markdown\/image\/18-Redis-optimized\/image-20221020093334606.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"Redis \u670d\u52a1\u7aef\u542f\u52a8\u793a\u610f\"\/><\/div><figcaption class=\"wp-element-caption\">Redis \u670d\u52a1\u7aef\u542f\u52a8\u793a\u610f<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u542f\u52a8\u5ba2\u6237\u7aef<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u8fde\u63a5\u672c\u5730\u9ed8\u8ba4\u7aef\u53e3\nredis-cli.exe\n\n# \u8fde\u63a5\u6307\u5b9a\u4e3b\u673a\u548c\u7aef\u53e3\nredis-cli.exe -h localhost -p 6379\n\n# \u8fde\u63a5\u5e26\u5bc6\u7801\u7684Redis\nredis-cli.exe -h localhost -p 6379 -a password<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"3-2-docker\u5b89\u88c5\">Docker\u5b89\u88c5<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u679c\u672c\u673a\u5df2\u7ecf\u5b89\u88c5\u4e86 Docker\uff0c\u90a3\u4e48\u4f7f\u7528\u5bb9\u5668\u542f\u52a8 Redis \u4f1a\u66f4\u5feb\u6377<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u62c9\u53d6\u5b98\u65b9\u955c\u50cf\ndocker pull redis:7.2-alpine\n\n# \u542f\u52a8 Redis \u5bb9\u5668\ndocker run -d \\\n  --name redis-demo \\\n  -p 6379:6379 \\\n  -v \/docker\/redis-data:\/data \\\n  redis:7.2-alpine \\\n  redis-server --appendonly yes\n\n# \u67e5\u770b\u5bb9\u5668\u72b6\u6001\ndocker ps\n\n# \u8fdb\u5165 Redis \u547d\u4ee4\u884c\ndocker exec -it redis-demo redis-cli\n\n# \u6d4b\u8bd5\u8fde\u63a5\nPING<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u5e38\u7528\u7ba1\u7406\u547d\u4ee4\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u505c\u6b62\u5bb9\u5668\ndocker stop redis-demo\n\n# \u542f\u52a8\u5df2\u5b58\u5728\u7684\u5bb9\u5668\ndocker start redis-demo\n\n# \u5220\u9664\u5bb9\u5668\uff08\u5220\u9664\u524d\u5148\u505c\u6b62\uff09\ndocker rm -f redis-demo<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"3-3-\u56fe\u5f62\u5316\u5ba2\u6237\u7aef\">\u56fe\u5f62\u5316\u5ba2\u6237\u7aef<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u9664\u4e86\u547d\u4ee4\u884c\u5ba2\u6237\u7aef&nbsp;<code>redis-cli<\/code>\uff0c\u6211\u4eec\u4e5f\u53ef\u4ee5\u4f7f\u7528\u56fe\u5f62\u5316\u5de5\u5177\u6765\u8fde\u63a5 Redis\uff0c\u67e5\u770b key\u3001\u4fee\u6539\u6570\u636e\u548c\u89c2\u5bdf\u6570\u636e\u7ed3\u6784\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e00\u4e2a\u5e38\u89c1\u9009\u62e9\u662f&nbsp;<strong>Another Redis Desktop Manager<\/strong>\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u5b66\u4e60\u9636\u6bb5\uff0c\u56fe\u5f62\u5316\u5ba2\u6237\u7aef\u6bd4\u8f83\u9002\u5408\u505a\u8fd9\u4e9b\u4e8b\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u76f4\u89c2\u770b Redis \u4e2d\u6709\u54ea\u4e9b key<\/li>\n\n\n\n<li>\u67e5\u770b String\u3001Hash\u3001List\u3001Set\u3001Sorted Set \u7684\u5b9e\u9645\u5b58\u50a8\u6548\u679c<\/li>\n\n\n\n<li>\u8f85\u52a9\u9a8c\u8bc1\u547d\u4ee4\u6267\u884c\u7ed3\u679c<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/118.25.99.91\/courses\/markdown\/image\/18-Redis-optimized\/image-20221020162820531.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/118.25.99.91\/courses\/markdown\/image\/18-Redis-optimized\/image-20221020162820531.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"Another Redis Desktop Manager \u6570\u636e\u6d4f\u89c8\u793a\u610f\"\/><\/div><figcaption class=\"wp-element-caption\">Another Redis Desktop Manager \u6570\u636e\u6d4f\u89c8\u793a\u610f<\/figcaption><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\ud83d\udca1 \u5efa\u8bae\uff1a<br>&#8211; \u521d\u5b66\u547d\u4ee4\u65f6\u4f18\u5148\u4f7f\u7528&nbsp;<code>redis-cli<\/code><br>&#8211; \u89c2\u5bdf\u6570\u636e\u7ed3\u6784\u548c\u6392\u67e5\u6570\u636e\u65f6\uff0c\u518d\u914d\u5408\u56fe\u5f62\u5316\u5ba2\u6237\u7aef\u4e00\u8d77\u4f7f\u7528<br>&#8211; \u56fe\u5f62\u5316\u5de5\u5177\u65b9\u4fbf\uff0c\u4f46\u4e0d\u8981\u56e0\u6b64\u5ffd\u7565 Redis \u547d\u4ee4\u672c\u8eab<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">\u6838\u5fc3\u914d\u7f6e<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"4-1-\u5e38\u89c4\u914d\u7f6e\">\u5e38\u89c4\u914d\u7f6e<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u7f16\u8f91&nbsp;<code>redis.conf<\/code>&nbsp;\u6216&nbsp;<code>redis.windows.conf<\/code>\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u662f\u5426\u4ee5\u5b88\u62a4\u8fdb\u7a0b\u65b9\u5f0f\u8fd0\u884c\uff08Linux\uff09\ndaemonize no\n\n# \u5ba2\u6237\u7aef\u8d85\u65f6\u65f6\u95f4\uff080\u8868\u793a\u4e0d\u8d85\u65f6\uff09\ntimeout 0\n\n# \u7aef\u53e3\u53f7\uff08\u9ed8\u8ba46379\uff09\nport 6379\n\n# \u7ed1\u5b9a\u5730\u5740\nbind 127.0.0.1\n# bind 0.0.0.0  # \u5141\u8bb8\u6240\u6709IP\u8fde\u63a5\uff08\u751f\u4ea7\u73af\u5883\u614e\u7528\uff09\n\n# \u65e5\u5fd7\u7ea7\u522b: debug | verbose | notice | warning\nloglevel notice\n\n# \u6570\u636e\u5e93\u6570\u91cf\uff08\u9ed8\u8ba416\u4e2a\uff09\ndatabases 16\n\n# \u8bbe\u7f6e\u5bc6\u7801\nrequirepass your_password<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"4-2-\u6301\u4e45\u5316\u914d\u7f6e\">\u6301\u4e45\u5316\u914d\u7f6e<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>RDB\uff08Redis Database\uff09<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RDB \u901a\u8fc7\u5185\u5b58\u5feb\u7167\u7684\u65b9\u5f0f\u6301\u4e45\u5316\u6570\u636e\uff0c\u662f Redis \u9ed8\u8ba4\u7684\u6301\u4e45\u5316\u7b56\u7565\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u914d\u7f6e\u793a\u4f8b\uff1a<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u5feb\u7167\u4fdd\u5b58\u76ee\u5f55\ndir \/var\/lib\/redis\n\n# \u5feb\u7167\u6587\u4ef6\u540d\ndbfilename dump.rdb\n\n# \u89e6\u53d1\u7b56\u7565: save &lt;\u79d2&gt; &lt;\u53d8\u5316\u6b21\u6570&gt;\nsave 900 1      # 900\u79d2\u5185\u81f3\u5c111\u6b21\u4fee\u6539\nsave 300 10     # 300\u79d2\u5185\u81f3\u5c1110\u6b21\u4fee\u6539\nsave 60 10000   # 60\u79d2\u5185\u81f3\u5c1110000\u6b21\u4fee\u6539<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/118.25.99.91\/courses\/markdown\/image\/18-Redis-optimized\/image-20221020102122917.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/118.25.99.91\/courses\/markdown\/image\/18-Redis-optimized\/image-20221020102122917.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"RDB \u914d\u7f6e\u793a\u610f\"\/><\/div><figcaption class=\"wp-element-caption\">RDB \u914d\u7f6e\u793a\u610f<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>RDB\u7279\u70b9\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u2705 \u4fdd\u5b58\u901f\u5ea6\u5feb\uff0c\u6587\u4ef6\u4f53\u79ef\u5c0f<\/li>\n\n\n\n<li>\u2705 \u6062\u590d\u901f\u5ea6\u5feb<\/li>\n\n\n\n<li>\u274c \u53ef\u80fd\u4e22\u5931\u6700\u540e\u4e00\u6b21\u5feb\u7167\u540e\u7684\u6570\u636e<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\ud83d\udca1&nbsp;<strong>\u53ef\u4ee5\u8fd9\u6837\u7406\u89e3 RDB<\/strong>:<br>&#8211; RDB \u50cf\u662f\u7ed9\u67d0\u4e00\u4e2a\u65f6\u523b\u7684\u5185\u5b58\u72b6\u6001\u62cd\u4e86\u4e00\u5f20\u5b8c\u6574\u5feb\u7167<br>&#8211; \u6bcf\u6b21\u4fdd\u5b58\u7684\u662f\u5f53\u65f6\u7684\u5168\u91cf\u6570\u636e\uff0c\u4e0d\u662f\u589e\u91cf\u65e5\u5fd7<br>&#8211; \u56e0\u4e3a\u4fdd\u5b58\u7684\u662f\u5feb\u7167\uff0c\u6240\u4ee5\u5907\u4efd\u548c\u6062\u590d\u90fd\u6bd4\u8f83\u5feb<br>&#8211; \u4f46\u5982\u679c Redis \u5728\u4e0b\u4e00\u6b21\u5feb\u7167\u524d\u5b95\u673a\uff0c\u5c31\u53ef\u80fd\u4e22\u5931\u8fd9\u6bb5\u65f6\u95f4\u7684\u65b0\u6570\u636e<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>AOF\uff08Append Only File\uff09<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">AOF \u901a\u8fc7\u8ffd\u52a0\u5199\u5165\u547d\u4ee4\u7684\u65b9\u5f0f\u6301\u4e45\u5316\u6570\u636e\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u914d\u7f6e\u793a\u4f8b\uff1a<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u5f00\u542fAOF\nappendonly yes\n\n# AOF\u6587\u4ef6\u8def\u5f84\uff08\u4e0eRDB\u5171\u7528dir\u914d\u7f6e\uff09\ndir \/var\/lib\/redis\n\n# AOF\u6587\u4ef6\u540d\nappendfilename \"appendonly.aof\"\n\n# \u540c\u6b65\u7b56\u7565\n# appendfsync always    # \u6bcf\u6761\u547d\u4ee4\u90fd\u540c\u6b65\uff08\u6700\u5b89\u5168\uff0c\u6700\u6162\uff09\nappendfsync everysec    # \u6bcf\u79d2\u540c\u6b65\uff08\u63a8\u8350\uff09\n# appendfsync no        # \u7531\u64cd\u4f5c\u7cfb\u7edf\u51b3\u5b9a<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>AOF\u7279\u70b9\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u2705 \u6570\u636e\u5b89\u5168\u6027\u9ad8\uff08\u53ef\u505a\u5230\u4e0d\u4e22\u6570\u636e\uff09<\/li>\n\n\n\n<li>\u274c \u6587\u4ef6\u4f53\u79ef\u5927<\/li>\n\n\n\n<li>\u274c \u6062\u590d\u901f\u5ea6\u6162\uff08\u9700\u91cd\u653e\u547d\u4ee4\uff09<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\ud83d\udca1&nbsp;<strong>\u53ef\u4ee5\u8fd9\u6837\u7406\u89e3 AOF<\/strong>:<br>&#8211; AOF \u4e0d\u4fdd\u5b58\u67d0\u4e00\u523b\u7684\u5b8c\u6574\u72b6\u6001\uff0c\u800c\u662f\u628a\u5199\u547d\u4ee4\u6301\u7eed\u8ffd\u52a0\u5230\u65e5\u5fd7\u6587\u4ef6\u91cc<br>&#8211; \u6062\u590d\u6570\u636e\u65f6\uff0c\u672c\u8d28\u4e0a\u5c31\u662f\u628a\u8fd9\u4e9b\u5199\u547d\u4ee4\u91cd\u65b0\u6267\u884c\u4e00\u904d<br>&#8211; \u56e0\u4e3a\u8bb0\u5f55\u5f97\u66f4\u7ec6\uff0c\u6240\u4ee5\u6570\u636e\u5b89\u5168\u6027\u901a\u5e38\u6bd4 RDB \u66f4\u9ad8<br>&#8211; \u4f46\u6587\u4ef6\u4f1a\u66f4\u5927\uff0c\u6062\u590d\u4e5f\u4f1a\u66f4\u6162\u4e00\u4e9b<\/p>\n<\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\ud83d\udca1&nbsp;<strong>\u6700\u4f73\u5b9e\u8df5<\/strong>:<br>&#8211; \u751f\u4ea7\u73af\u5883\u5efa\u8bae\u540c\u65f6\u5f00\u542f RDB \u548c AOF<br>&#8211; \u4e24\u8005\u540c\u65f6\u5f00\u542f\u65f6\uff0cRedis \u6062\u590d\u6570\u636e\u901a\u5e38\u4f18\u5148\u4f7f\u7528 AOF<br>&#8211; \u8bfe\u5802\u7406\u89e3\u4e0a\u53ef\u4ee5\u8bb0\u6210\u4e00\u53e5\u8bdd\uff1a<code>RDB \u66f4\u50cf\u5feb\u7167\uff0cAOF \u66f4\u50cf\u64cd\u4f5c\u65e5\u5fd7<\/code><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">\u6570\u636e\u7ed3\u6784<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u6b63\u5f0f\u5b66\u4e60 Redis \u6570\u636e\u7ed3\u6784\u4e4b\u524d\uff0c\u5148\u8bb0\u4f4f\u4e00\u4e2a\u6700\u6838\u5fc3\u7684\u8ba4\u8bc6\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Redis \u5b58\u50a8\u7684\u672c\u8d28\u662f\u952e\u503c\u5bf9\uff0c\u4e5f\u5c31\u662f&nbsp;<code>key -&gt; value<\/code>\u3002<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u91cc\u8bf4\u7684\u201c\u6570\u636e\u7ed3\u6784\u201d\uff0c\u591a\u6570\u65f6\u5019\u4e3b\u8981\u6307\u7684\u662f&nbsp;<strong>value \u7684\u7ed3\u6784<\/strong>\uff0c\u6bd4\u5982\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>value \u662f\u4e00\u4e2a\u666e\u901a\u5b57\u7b26\u4e32\uff0c\u5bf9\u5e94\u00a0<code>String<\/code><\/li>\n\n\n\n<li>value \u662f\u4e00\u4e2a\u5217\u8868\uff0c\u5bf9\u5e94\u00a0<code>List<\/code><\/li>\n\n\n\n<li>value \u662f\u4e00\u4e2a\u96c6\u5408\uff0c\u5bf9\u5e94\u00a0<code>Set<\/code><\/li>\n\n\n\n<li>value \u662f\u4e00\u4e2a\u952e\u503c\u5bf9\u96c6\u5408\uff0c\u5bf9\u5e94\u00a0<code>Hash<\/code><\/li>\n\n\n\n<li>value \u662f\u4e00\u4e2a\u5e26\u5206\u6570\u7684\u6709\u5e8f\u96c6\u5408\uff0c\u5bf9\u5e94\u00a0<code>Sorted Set<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u800c&nbsp;<code>key<\/code>&nbsp;\u672c\u8eab\u901a\u5e38\u53ea\u662f\u4e00\u4e2a\u5b57\u7b26\u4e32\uff0c\u4f46\u5728\u5b9e\u9645\u5f00\u53d1\u4e2d\uff0c\u6211\u4eec\u4f1a\u628a\u5b83\u8bbe\u8ba1\u5f97\u66f4\u6709\u5c42\u6b21\uff0c\u5e38\u89c1\u5199\u6cd5\u662f\u7528\u5192\u53f7&nbsp;<code>:<\/code>&nbsp;\u5206\u9694\u591a\u7ea7\u542b\u4e49\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>user:1001:name\nuser:1001:cart\norder:20240501:10001\narticle:1001:view<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u79cd\u547d\u540d\u65b9\u5f0f\u7684\u597d\u5904\u662f\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8bed\u4e49\u6e05\u6670\uff0c\u770b\u5230 key \u57fa\u672c\u5c31\u77e5\u9053\u5b83\u8868\u793a\u4ec0\u4e48\u6570\u636e<\/li>\n\n\n\n<li>\u65b9\u4fbf\u6309\u524d\u7f00\u67e5\u8be2\uff0c\u4f8b\u5982\u00a0<code>KEYS user:*<\/code><\/li>\n\n\n\n<li>\u4fbf\u4e8e\u56e2\u961f\u7edf\u4e00\u547d\u540d\u89c4\u8303\uff0c\u51cf\u5c11\u540e\u671f\u7ef4\u62a4\u6210\u672c<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"5-1-\u901a\u7528\u547d\u4ee4\">\u901a\u7528\u547d\u4ee4<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u5207\u6362\u6570\u636e\u5e93\uff080-15\uff0c\u9ed8\u8ba40\uff09\nSELECT index\n\n# \u5bc6\u7801\u8ba4\u8bc1\nAUTH password\n\n# \u67e5\u627ekey\uff08\u652f\u6301\u901a\u914d\u7b26: * ? &#91;]\uff09\nKEYS pattern\nKEYS *          # \u67e5\u770b\u6240\u6709key\nKEYS user:*     # \u67e5\u770b\u524d\u7f00\u4e3auser:\u7684key\n\n# \u6e05\u7a7a\u6240\u6709\u6570\u636e\u5e93\uff08\u5371\u9669\u64cd\u4f5c\uff01\uff09\nFLUSHALL\n\n# \u6e05\u7a7a\u5f53\u524d\u6570\u636e\u5e93\nFLUSHDB\n\n# \u5220\u9664key\nDEL key\n\n# \u67e5\u770bkey\u7c7b\u578b\nTYPE key\n\n# \u8bbe\u7f6ekey\u8fc7\u671f\u65f6\u95f4\uff08\u79d2\uff09\nEXPIRE key seconds\n\n# \u67e5\u770bkey\u5269\u4f59\u751f\u5b58\u65f6\u95f4\nTTL key<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"5-2-string-\u5b57\u7b26\u4e32\">String\uff08\u5b57\u7b26\u4e32\uff09<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u6700\u57fa\u7840\u7684\u6570\u636e\u7c7b\u578b\uff0c\u53ef\u5b58\u50a8\u5b57\u7b26\u4e32\u3001\u6570\u5b57\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/118.25.99.91\/courses\/markdown\/image\/18-Redis-optimized\/image-20221020112310089.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/118.25.99.91\/courses\/markdown\/image\/18-Redis-optimized\/image-20221020112310089.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"String \u6570\u636e\u7ed3\u6784\u793a\u610f\"\/><\/div><figcaption class=\"wp-element-caption\">String \u6570\u636e\u7ed3\u6784\u793a\u610f<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u57fa\u672c\u547d\u4ee4<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u8bbe\u7f6ekey-value\uff08key\u5b58\u5728\u5219\u8986\u76d6\uff09\nSET key value\n\n# \u83b7\u53d6value\nGET key\n\n# \u6279\u91cf\u8bbe\u7f6e\nMSET key1 value1 key2 value2 ...\n\n# \u6279\u91cf\u83b7\u53d6\nMGET key1 key2 ...\n\n# \u6570\u503c+1\nINCR key\n\n# \u6570\u503c+\u6307\u5b9a\u6b65\u957f\nINCRBY key increment\n\n# \u6570\u503c-1\nDECR key\n\n# \u6570\u503c-\u6307\u5b9a\u6b65\u957f\nDECRBY key decrement\n\n# \u8bbe\u7f6ekey\u5e76\u6307\u5b9a\u8fc7\u671f\u65f6\u95f4\uff08\u79d2\uff09\nSETEX key seconds value\n\n# \u4ec5\u5f53key\u4e0d\u5b58\u5728\u65f6\u624d\u8bbe\u7f6e\nSETNX key value<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u5e94\u7528\u573a\u666f<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">\u573a\u666f<\/th><th class=\"has-text-align-left\" data-align=\"left\">\u5b9e\u73b0\u65b9\u5f0f<\/th><th class=\"has-text-align-left\" data-align=\"left\">\u6307\u4ee4\u8bf4\u660e<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>\u7f13\u5b58<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><code>SET user:1001 \"{...}\"<\/code>&nbsp;+&nbsp;<code>EXPIRE<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u5148\u5199\u5165\u7f13\u5b58\u6570\u636e\uff0c\u518d\u8bbe\u7f6e\u8fc7\u671f\u65f6\u95f4<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>\u8ba1\u6570\u5668<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><code>INCR page:view:homepage<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u5bf9\u8bbf\u95ee\u6b21\u6570\u505a\u539f\u5b50\u81ea\u589e<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>\u9650\u6d41<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><code>INCR user:1001:api:count<\/code>&nbsp;+&nbsp;<code>EXPIRE 60<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u5728\u56fa\u5b9a\u65f6\u95f4\u7a97\u53e3\u5185\u7edf\u8ba1\u8bf7\u6c42\u6b21\u6570<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"5-3-list-\u5217\u8868\">List\uff08\u5217\u8868\uff09<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u53cc\u5411\u94fe\u8868\u5b9e\u73b0\uff0c\u652f\u6301\u4e24\u7aef\u63d2\u5165\/\u5f39\u51fa\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/118.25.99.91\/courses\/markdown\/image\/18-Redis-optimized\/image-20221020142318075.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/118.25.99.91\/courses\/markdown\/image\/18-Redis-optimized\/image-20221020142318075.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"List \u6570\u636e\u7ed3\u6784\u793a\u610f\"\/><\/div><figcaption class=\"wp-element-caption\">List \u6570\u636e\u7ed3\u6784\u793a\u610f<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u57fa\u672c\u547d\u4ee4<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u4ece\u5de6\u4fa7\u63d2\u5165\nLPUSH key value1 value2 ...\n\n# \u4ece\u5de6\u4fa7\u5f39\u51fa\nLPOP key\n\n# \u4ece\u53f3\u4fa7\u63d2\u5165\nRPUSH key value1 value2 ...\n\n# \u4ece\u53f3\u4fa7\u5f39\u51fa\nRPOP key\n\n# \u83b7\u53d6\u5217\u8868\u957f\u5ea6\nLLEN key\n\n# \u83b7\u53d6\u6307\u5b9a\u8303\u56f4\u5143\u7d20\uff080\u8868\u793a\u7b2c\u4e00\u4e2a\uff0c-1\u8868\u793a\u6700\u540e\u4e00\u4e2a\uff09\nLRANGE key start stop\n\n# \u83b7\u53d6\u6307\u5b9a\u7d22\u5f15\u5143\u7d20\nLINDEX key index\n\n# \u5728\u6307\u5b9a\u5143\u7d20\u524d\/\u540e\u63d2\u5165\nLINSERT key BEFORE|AFTER pivot value\n\n# \u4fee\u6539\u6307\u5b9a\u7d22\u5f15\u5143\u7d20\nLSET key index value\n\n# \u5220\u9664\u6307\u5b9a\u5143\u7d20\uff08count&gt;0\u4ece\u5934\u5220\uff0ccount&lt;0\u4ece\u5c3e\u5220\uff0ccount=0\u5168\u5220\uff09\nLREM key count value<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u5e94\u7528\u573a\u666f<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">\u573a\u666f<\/th><th class=\"has-text-align-left\" data-align=\"left\">\u5b9e\u73b0\u65b9\u5f0f<\/th><th class=\"has-text-align-left\" data-align=\"left\">\u6307\u4ee4\u8bf4\u660e<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>\u6d88\u606f\u961f\u5217<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><code>LPUSH<\/code>&nbsp;+&nbsp;<code>BRPOP<\/code>\uff08\u963b\u585e\u5f39\u51fa\uff09<\/td><td class=\"has-text-align-left\" data-align=\"left\">\u4e00\u7aef\u5199\u5165\u6d88\u606f\uff0c\u53e6\u4e00\u7aef\u963b\u585e\u7b49\u5f85\u5e76\u6d88\u8d39\u6d88\u606f<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>\u6700\u65b0\u52a8\u6001<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><code>LPUSH timeline:user:1001 \"...\"<\/code>&nbsp;+&nbsp;<code>LTRIM 0 99<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u5934\u90e8\u63d2\u5165\u6700\u65b0\u5185\u5bb9\uff0c\u5e76\u53ea\u4fdd\u7559\u6700\u8fd1100\u6761<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>\u6808<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><code>LPUSH<\/code>&nbsp;+&nbsp;<code>LPOP<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u540c\u4e00\u7aef\u8fdb\u51fa\uff0c\u540e\u8fdb\u5148\u51fa<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>\u961f\u5217<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><code>LPUSH<\/code>&nbsp;+&nbsp;<code>RPOP<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u4e00\u7aef\u8fdb\u5165\u53e6\u4e00\u7aef\u53d6\u51fa\uff0c\u5148\u8fdb\u5148\u51fa<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"5-4-set-\u96c6\u5408\">Set\uff08\u96c6\u5408\uff09<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u65e0\u5e8f\u3001\u4e0d\u91cd\u590d\u7684\u5b57\u7b26\u4e32\u96c6\u5408\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/118.25.99.91\/courses\/markdown\/image\/18-Redis-optimized\/image-20221020144947339.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/118.25.99.91\/courses\/markdown\/image\/18-Redis-optimized\/image-20221020144947339.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"Set \u6570\u636e\u7ed3\u6784\u793a\u610f\"\/><\/div><figcaption class=\"wp-element-caption\">Set \u6570\u636e\u7ed3\u6784\u793a\u610f<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u57fa\u672c\u547d\u4ee4<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u6dfb\u52a0\u6210\u5458\nSADD key member1 member2 ...\n\n# \u83b7\u53d6\u6210\u5458\u6570\u91cf\nSCARD key\n\n# \u83b7\u53d6\u6240\u6709\u6210\u5458\nSMEMBERS key\n\n# \u5224\u65ad\u6210\u5458\u662f\u5426\u5b58\u5728\nSISMEMBER key member\n\n# \u968f\u673a\u5f39\u51fa\u6307\u5b9a\u6570\u91cf\u6210\u5458\nSPOP key &#91;count]\n\n# \u968f\u673a\u83b7\u53d6\u6307\u5b9a\u6570\u91cf\u6210\u5458\uff08\u4e0d\u5220\u9664\uff09\nSRANDMEMBER key &#91;count]\n\n# \u6c42\u4ea4\u96c6\nSINTER key1 key2 ...\n\n# \u6c42\u4ea4\u96c6\u5e76\u4fdd\u5b58\nSINTERSTORE destination key1 key2 ...\n\n# \u6c42\u5e76\u96c6\nSUNION key1 key2 ...\n\n# \u6c42\u5e76\u96c6\u5e76\u4fdd\u5b58\nSUNIONSTORE destination key1 key2 ...\n\n# \u6c42\u5dee\u96c6\nSDIFF key1 key2 ...\n\n# \u6c42\u5dee\u96c6\u5e76\u4fdd\u5b58\nSDIFFSTORE destination key1 key2 ...\n\n# \u79fb\u52a8\u6210\u5458\u5230\u53e6\u4e00\u4e2a\u96c6\u5408\nSMOVE source destination member\n\n# \u5220\u9664\u6210\u5458\nSREM key member1 member2 ...<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u5e94\u7528\u573a\u666f<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">\u573a\u666f<\/th><th class=\"has-text-align-left\" data-align=\"left\">\u5b9e\u73b0\u65b9\u5f0f<\/th><th class=\"has-text-align-left\" data-align=\"left\">\u6307\u4ee4\u8bf4\u660e<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>\u5171\u540c\u597d\u53cb<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><code>SINTER user:1001:friends user:1002:friends<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u6c42\u4e24\u4e2a\u597d\u53cb\u96c6\u5408\u7684\u4ea4\u96c6<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>\u597d\u53cb\u63a8\u8350<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><code>SDIFF user:1001:friends user:1002:friends<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u6c42\u5dee\u96c6\uff0c\u627e\u51fa\u53ea\u5728\u4e00\u65b9\u96c6\u5408\u4e2d\u7684\u6210\u5458<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>\u6807\u7b7e\u7cfb\u7edf<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><code>SADD article:1001:tags \"java\" \"redis\"<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u7ed9\u6587\u7ae0\u7ed1\u5b9a\u591a\u4e2a\u4e0d\u91cd\u590d\u6807\u7b7e<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>\u62bd\u5956<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><code>SRANDMEMBER prize:pool 3<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u968f\u673a\u53d6\u51fa\u82e5\u5e72\u5956\u6c60\u6210\u5458<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>\u53bb\u91cd<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><code>SADD ip:2024-01-01 \"192.168.1.1\"<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u5229\u7528\u96c6\u5408\u6210\u5458\u552f\u4e00\u6027\u505a\u53bb\u91cd<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"5-5-hash-\u54c8\u5e0c\">Hash\uff08\u54c8\u5e0c\uff09<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u952e\u503c\u5bf9\u96c6\u5408\uff0c\u9002\u5408\u5b58\u50a8\u5bf9\u8c61\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/118.25.99.91\/courses\/markdown\/image\/18-Redis-optimized\/image-20221020151528685.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/118.25.99.91\/courses\/markdown\/image\/18-Redis-optimized\/image-20221020151528685.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"Hash \u6570\u636e\u7ed3\u6784\u793a\u610f\"\/><\/div><figcaption class=\"wp-element-caption\">Hash \u6570\u636e\u7ed3\u6784\u793a\u610f<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u57fa\u672c\u547d\u4ee4<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u8bbe\u7f6e\u5b57\u6bb5\nHSET key field value\n\n# \u83b7\u53d6\u5b57\u6bb5\u503c\nHGET key field\n\n# \u6279\u91cf\u8bbe\u7f6e\nHMSET key field1 value1 field2 value2 ...\n\n# \u6279\u91cf\u83b7\u53d6\nHMGET key field1 field2 ...\n\n# \u5224\u65ad\u5b57\u6bb5\u662f\u5426\u5b58\u5728\nHEXISTS key field\n\n# \u83b7\u53d6\u6240\u6709\u5b57\u6bb5\u548c\u503c\nHGETALL key\n\n# \u83b7\u53d6\u6240\u6709\u5b57\u6bb5\nHKEYS key\n\n# \u83b7\u53d6\u6240\u6709\u503c\nHVALS key\n\n# \u83b7\u53d6\u5b57\u6bb5\u6570\u91cf\nHLEN key\n\n# \u5b57\u6bb5\u503c\u589e\u52a0\u6307\u5b9a\u6570\u503c\nHINCRBY key field increment\n\n# \u4ec5\u5f53\u5b57\u6bb5\u4e0d\u5b58\u5728\u65f6\u624d\u8bbe\u7f6e\nHSETNX key field value\n\n# \u5220\u9664\u5b57\u6bb5\nHDEL key field1 field2 ...<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u5e94\u7528\u573a\u666f<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">\u573a\u666f<\/th><th class=\"has-text-align-left\" data-align=\"left\">\u5b9e\u73b0\u65b9\u5f0f<\/th><th class=\"has-text-align-left\" data-align=\"left\">\u6307\u4ee4\u8bf4\u660e<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>\u7528\u6237\u4fe1\u606f<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><code>HSET user:1001 name \"\u5f20\u4e09\" age 25<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u628a\u540c\u4e00\u4e2a\u5bf9\u8c61\u7684\u591a\u4e2a\u5b57\u6bb5\u5b58\u8fdb\u4e00\u4e2a hash<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>\u8d2d\u7269\u8f66<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><code>HSET cart:user:1001 product:10001 2<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u7528 field \u8868\u793a\u5546\u54c1\uff0c\u7528 value \u8868\u793a\u6570\u91cf<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>\u914d\u7f6e\u4fe1\u606f<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><code>HSET config:app version \"1.0.0\" env \"prod\"<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u5c06\u4e00\u7ec4\u76f8\u5173\u914d\u7f6e\u96c6\u4e2d\u5b58\u50a8\u5728\u540c\u4e00\u4e2a hash \u4e2d<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"5-6-sorted-set-\u6709\u5e8f\u96c6\u5408\">Sorted Set\uff08\u6709\u5e8f\u96c6\u5408\uff09<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u6bcf\u4e2a\u6210\u5458\u5173\u8054\u4e00\u4e2a\u5206\u6570\uff0c\u6309\u5206\u6570\u6392\u5e8f\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/118.25.99.91\/courses\/markdown\/image\/18-Redis-optimized\/image-20221020155415981.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/118.25.99.91\/courses\/markdown\/image\/18-Redis-optimized\/image-20221020155415981.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"Sorted Set \u6570\u636e\u7ed3\u6784\u793a\u610f\"\/><\/div><figcaption class=\"wp-element-caption\">Sorted Set \u6570\u636e\u7ed3\u6784\u793a\u610f<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u57fa\u672c\u547d\u4ee4<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u6dfb\u52a0\u6210\u5458\uff08\u5206\u6570\u5728\u524d\uff09\nZADD key score1 member1 score2 member2 ...\n\n# \u83b7\u53d6\u6210\u5458\u6570\u91cf\nZCARD key\n\n# \u83b7\u53d6\u6307\u5b9a\u5206\u6570\u533a\u95f4\u6210\u5458\u6570\u91cf\nZCOUNT key min max\n\n# \u83b7\u53d6\u6210\u5458\u5206\u6570\nZSCORE key member\n\n# \u589e\u52a0\u6210\u5458\u5206\u6570\nZINCRBY key increment member\n\n# \u6309\u6392\u540d\u5347\u5e8f\u83b7\u53d6\uff080\u8868\u793a\u7b2c\u4e00\u540d\uff09\nZRANGE key start stop &#91;WITHSCORES]\n\n# \u6309\u6392\u540d\u964d\u5e8f\u83b7\u53d6\nZREVRANGE key start stop &#91;WITHSCORES]\n\n# \u6309\u5206\u6570\u5347\u5e8f\u83b7\u53d6\nZRANGEBYSCORE key min max &#91;WITHSCORES] &#91;LIMIT offset count]\n\n# \u6309\u5206\u6570\u964d\u5e8f\u83b7\u53d6\nZREVRANGEBYSCORE key max min &#91;WITHSCORES] &#91;LIMIT offset count]\n\n# \u83b7\u53d6\u6210\u5458\u5347\u5e8f\u6392\u540d\nZRANK key member\n\n# \u83b7\u53d6\u6210\u5458\u964d\u5e8f\u6392\u540d\nZREVRANK key member\n\n# \u5220\u9664\u6210\u5458\nZREM key member1 member2 ...\n\n# \u5220\u9664\u6307\u5b9a\u6392\u540d\u533a\u95f4\u6210\u5458\nZREMRANGEBYRANK key start stop\n\n# \u5220\u9664\u6307\u5b9a\u5206\u6570\u533a\u95f4\u6210\u5458\nZREMRANGEBYSCORE key min max<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u5e94\u7528\u573a\u666f<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">\u573a\u666f<\/th><th class=\"has-text-align-left\" data-align=\"left\">\u5b9e\u73b0\u65b9\u5f0f<\/th><th class=\"has-text-align-left\" data-align=\"left\">\u6307\u4ee4\u8bf4\u660e<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>\u6392\u884c\u699c<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><code>ZADD leaderboard 100 \"player1\"<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u7528\u5206\u6570\u8868\u793a\u6392\u540d\u4f9d\u636e\uff0c\u6210\u5458\u81ea\u52a8\u6309\u5206\u6570\u6392\u5e8f<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>\u5ef6\u65f6\u961f\u5217<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><code>ZADD delay:queue timestamp \"task\"<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u7528\u65f6\u95f4\u6233\u505a score\uff0c\u5230\u65f6\u95f4\u540e\u518d\u53d6\u51fa\u4efb\u52a1<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>\u8303\u56f4\u67e5\u8be2<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><code>ZRANGEBYSCORE articles 1700000000 1700086400<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u6309 score \u533a\u95f4\u7b5b\u9009\u6210\u5458<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>\u70ed\u5ea6\u6392\u5e8f<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><code>ZINCRBY hot:articles 1 \"article:1001\"<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u6bcf\u6b21\u8bbf\u95ee\u5c31\u7ed9\u6587\u7ae0\u70ed\u5ea6\u52a0\u5206\uff0c\u518d\u6309\u5206\u6570\u6392\u5e8f<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u5185\u5b58\u6dd8\u6c70\u7b56\u7565<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u5f53\u5185\u5b58\u8fbe\u5230\u4e0a\u9650\u65f6\uff0cRedis \u4f1a\u89e6\u53d1\u6dd8\u6c70\u7b56\u7565\u5220\u9664\u65e7\u6570\u636e\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"6-1-\u6dd8\u6c70\u7b56\u7565\u5206\u7c7b\">\u6dd8\u6c70\u7b56\u7565\u5206\u7c7b<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>volatile \u7cfb\u5217\uff08\u9488\u5bf9\u8bbe\u7f6e\u4e86\u8fc7\u671f\u65f6\u95f4\u7684key\uff09<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">\u7b56\u7565<\/th><th class=\"has-text-align-left\" data-align=\"left\">\u8bf4\u660e<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>volatile-lru<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u6dd8\u6c70\u6700\u8fd1\u6700\u5c11\u4f7f\u7528\u7684key<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>volatile-lfu<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u6dd8\u6c70\u4e00\u6bb5\u65f6\u95f4\u5185\u4f7f\u7528\u9891\u7387\u6700\u4f4e\u7684key<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>volatile-random<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u968f\u673a\u6dd8\u6c70<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>volatile-ttl<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u6dd8\u6c70\u5373\u5c06\u8fc7\u671f\u7684key<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>allkeys \u7cfb\u5217\uff08\u9488\u5bf9\u6240\u6709key\uff09<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">\u7b56\u7565<\/th><th class=\"has-text-align-left\" data-align=\"left\">\u8bf4\u660e<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>allkeys-lru<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u6dd8\u6c70\u6700\u8fd1\u6700\u5c11\u4f7f\u7528\u7684key<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>allkeys-lfu<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u6dd8\u6c70\u4e00\u6bb5\u65f6\u95f4\u5185\u4f7f\u7528\u9891\u7387\u6700\u4f4e\u7684key<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>allkeys-random<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u968f\u673a\u6dd8\u6c70<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u5176\u4ed6<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">\u7b56\u7565<\/th><th class=\"has-text-align-left\" data-align=\"left\">\u8bf4\u660e<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>noeviction<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u4e0d\u6dd8\u6c70\uff0c\u65b0\u5199\u5165\u76f4\u63a5\u62a5\u9519\uff08\u9ed8\u8ba4\uff09<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"6-2-\u914d\u7f6e\u65b9\u6cd5\">\u914d\u7f6e\u65b9\u6cd5<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u914d\u7f6e\u6700\u5927\u5185\u5b58\nmaxmemory 256mb\n\n# \u914d\u7f6e\u6dd8\u6c70\u7b56\u7565\nmaxmemory-policy allkeys-lru<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"6-3-\u7b56\u7565\u9009\u62e9\u5efa\u8bae\">\u7b56\u7565\u9009\u62e9\u5efa\u8bae<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">\u573a\u666f<\/th><th class=\"has-text-align-left\" data-align=\"left\">\u63a8\u8350\u7b56\u7565<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\">\u7f13\u5b58\u573a\u666f<\/td><td class=\"has-text-align-left\" data-align=\"left\"><code>allkeys-lru<\/code>&nbsp;\u6216&nbsp;<code>allkeys-lfu<\/code><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">\u9700\u8981\u4fdd\u7559\u70ed\u6570\u636e<\/td><td class=\"has-text-align-left\" data-align=\"left\"><code>allkeys-lfu<\/code><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">\u65f6\u6548\u6027\u6570\u636e<\/td><td class=\"has-text-align-left\" data-align=\"left\"><code>volatile-ttl<\/code><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">\u4e0d\u5141\u8bb8\u4e22\u6570\u636e<\/td><td class=\"has-text-align-left\" data-align=\"left\"><code>noeviction<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"6-4-\u9002\u5408\u5b58\u50a8\u5728redis\u4e2d\u7684\u6570\u636e\u7279\u5f81\">\u9002\u5408\u5b58\u50a8\u5728Redis\u4e2d\u7684\u6570\u636e\u7279\u5f81<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u2705 \u8bbf\u95ee\u9891\u7387\u9ad8\uff08QPS\u5927\uff09<\/li>\n\n\n\n<li>\u2705 \u5bf9\u4e22\u5931\u4e0d\u654f\u611f<\/li>\n\n\n\n<li>\u2705 \u6570\u636e\u91cf\u76f8\u5bf9\u8f83\u5c0f<\/li>\n\n\n\n<li>\u2705 \u9700\u8981\u5feb\u901f\u8bfb\u5199<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Java\u5ba2\u6237\u7aef<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Redis \u548c MySQL \u4e00\u6837\uff0c\u90fd\u662f\u5178\u578b\u7684 C\/S \u67b6\u6784\u5e94\u7528\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u9664\u4e86&nbsp;<code>redis-cli<\/code>&nbsp;\u8fd9\u6837\u7684\u547d\u4ee4\u884c\u5ba2\u6237\u7aef\u4e4b\u5916\uff0c\u4e5f\u6709\u56fe\u5f62\u5316\u5ba2\u6237\u7aef\u548c Java \u5ba2\u6237\u7aef\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728 Java \u5f00\u53d1\u91cc\uff0c\u6700\u5e38\u89c1\u7684\u5ba2\u6237\u7aef\u9009\u62e9\u6709\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Jedis<\/strong>\uff1a\u8d34\u8fd1 Redis \u539f\u751f\u547d\u4ee4\uff0c\u8bfe\u5802\u4e2d\u4ee5\u4e86\u89e3\u4e3a\u4e3b<\/li>\n\n\n\n<li><strong>Lettuce<\/strong>\uff1aSpring Boot \u9ed8\u8ba4\u96c6\u6210\u8f83\u591a\uff0c\u652f\u6301\u5f02\u6b65\u548c\u54cd\u5e94\u5f0f<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"7-1-\u5ba2\u6237\u7aef\u5bf9\u6bd4\">\u5ba2\u6237\u7aef\u5bf9\u6bd4<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">\u5ba2\u6237\u7aef<\/th><th class=\"has-text-align-left\" data-align=\"left\">\u7279\u70b9<\/th><th class=\"has-text-align-left\" data-align=\"left\">\u63a8\u8350\u573a\u666f<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Jedis<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u7b80\u5355\u76f4\u63a5\uff0cAPI\u4e0eRedis\u547d\u4ee4\u5bf9\u5e94<\/td><td class=\"has-text-align-left\" data-align=\"left\">\u4e86\u89e3\u539f\u751f\u547d\u4ee4\u6620\u5c04<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"7-2-jedis\u4f7f\u7528\">Jedis\u4f7f\u7528<\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u8fd9\u4e00\u90e8\u5206\u4ee5\u4e86\u89e3\u4e3a\u4e3b\uff0c\u91cd\u70b9\u662f\u77e5\u9053 Jedis \u548c Redis \u539f\u751f\u547d\u4ee4\u7684\u5bf9\u5e94\u5173\u7cfb\uff0c\u4e0d\u4f5c\u4e3a\u672c\u8bfe\u7684\u4e3b\u8981\u5b9e\u6218\u5ba2\u6237\u7aef\u3002<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Maven\u4f9d\u8d56\uff08\u63a8\u83504.x\u7248\u672c\uff09<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;dependency&gt;\n    &lt;groupId&gt;redis.clients&lt;\/groupId&gt;\n    &lt;artifactId&gt;jedis&lt;\/artifactId&gt;\n    &lt;version&gt;4.4.3&lt;\/version&gt;\n&lt;\/dependency&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u57fa\u7840\u4f7f\u7528<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import redis.clients.jedis.Jedis;\nimport redis.clients.jedis.JedisPool;\nimport redis.clients.jedis.JedisPoolConfig;\n\npublic class JedisDemo {\n\n    \/\/ \u5355\u8fde\u63a5\uff08\u4e0d\u63a8\u8350\u751f\u4ea7\u4f7f\u7528\uff09\n    public void basicUsage() {\n        Jedis jedis = new Jedis(\"localhost\", 6379);\n        jedis.auth(\"password\");  \/\/ \u5982\u679c\u6709\u5bc6\u7801\n\n        jedis.set(\"key\", \"value\");\n        String value = jedis.get(\"key\");\n        System.out.println(value);\n\n        jedis.close();\n    }\n\n    \/\/ \u8fde\u63a5\u6c60\uff08\u63a8\u8350\uff09\n    public void poolUsage() {\n        JedisPoolConfig config = new JedisPoolConfig();\n        config.setMaxTotal(100);      \/\/ \u6700\u5927\u8fde\u63a5\u6570\n        config.setMaxIdle(50);        \/\/ \u6700\u5927\u7a7a\u95f2\u8fde\u63a5\n        config.setMinIdle(10);        \/\/ \u6700\u5c0f\u7a7a\u95f2\u8fde\u63a5\n\n        try (JedisPool pool = new JedisPool(config, \"localhost\", 6379, 3000, \"password\");\n             Jedis jedis = pool.getResource()) {\n\n            jedis.set(\"pool:key\", \"value\");\n            String value = jedis.get(\"pool:key\");\n            System.out.println(value);\n        }\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u4fdd\u5b58\u5bf9\u8c61\u65f6\u7684\u5e38\u89c1\u505a\u6cd5<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Jedis \u6700\u9002\u5408\u76f4\u63a5\u64cd\u4f5c\u5b57\u7b26\u4e32\u3001\u6570\u5b57\u548c Redis \u539f\u751f\u547d\u4ee4\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u679c\u4e1a\u52a1\u91cc\u8981\u4fdd\u5b58\u4e00\u4e2a Java \u5bf9\u8c61\uff0c\u5e38\u89c1\u505a\u6cd5\u901a\u5e38\u4e0d\u662f\u628a\u5bf9\u8c61\u76f4\u63a5\u4e22\u8fdb\u53bb\uff0c\u800c\u662f\u5148\u8f6c\u6210 JSON \u5b57\u7b26\u4e32\u518d\u5b58\u5165 Redis\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import com.fasterxml.jackson.databind.ObjectMapper;\nimport redis.clients.jedis.Jedis;\n\npublic class JedisJsonDemo {\n\n    private static final ObjectMapper MAPPER = new ObjectMapper();\n\n    public void saveUser() throws Exception {\n        try (Jedis jedis = new Jedis(\"localhost\", 6379)) {\n            jedis.auth(\"password\");\n\n            User user = new User(1L, \"zhangsan\", \"zhangsan@example.com\");\n            String json = MAPPER.writeValueAsString(user);\n\n            jedis.set(\"user:1\", json);\n        }\n    }\n\n    public User getUser() throws Exception {\n        try (Jedis jedis = new Jedis(\"localhost\", 6379)) {\n            jedis.auth(\"password\");\n\n            String json = jedis.get(\"user:1\");\n            return json == null ? null : MAPPER.readValue(json, User.class);\n        }\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u4e2a\u4f8b\u5b50\u60f3\u8bf4\u660e\u7684\u91cd\u70b9\u4e0d\u662f&nbsp;<code>ObjectMapper<\/code>&nbsp;\u672c\u8eab\uff0c\u800c\u662f\u4e24\u4ef6\u4e8b\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Jedis \u7684\u65b9\u6cd5\u540d\u901a\u5e38\u548c Redis \u547d\u4ee4\u4e00\u4e00\u5bf9\u5e94\uff0c\u5b66\u4e60\u6210\u672c\u4f4e<\/li>\n\n\n\n<li>\u5f53\u4f60\u8981\u5b58\u590d\u6742\u5bf9\u8c61\u65f6\uff0c<code>\u5bf9\u8c61 -> JSON -> Redis<\/code>\u00a0\u662f\u975e\u5e38\u5e38\u89c1\u7684\u4e00\u6761\u8def\u7ebf<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u64cd\u4f5c\u5404\u6570\u636e\u7c7b\u578b<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public void dataTypeOperations(Jedis jedis) {\n    \/\/ String\n    jedis.set(\"user:1:name\", \"\u5f20\u4e09\");\n    jedis.expire(\"user:1:name\", 3600);\n\n    \/\/ Hash\n    jedis.hset(\"user:1\", \"name\", \"\u5f20\u4e09\");\n    jedis.hset(\"user:1\", \"age\", \"25\");\n    Map&lt;String, String&gt; user = jedis.hgetAll(\"user:1\");\n\n    \/\/ List\n    jedis.lpush(\"queue:tasks\", \"task1\", \"task2\");\n    String task = jedis.rpop(\"queue:tasks\");\n\n    \/\/ Set\n    jedis.sadd(\"tags:article:1\", \"java\", \"redis\");\n    Set&lt;String&gt; tags = jedis.smembers(\"tags:article:1\");\n\n    \/\/ Sorted Set\n    jedis.zadd(\"rank:score\", 100, \"player1\");\n    jedis.zadd(\"rank:score\", 95, \"player2\");\n    Set&lt;Tuple&gt; topPlayers = jedis.zrevrangeWithScores(\"rank:score\", 0, 9);\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Spring Boot\u6574\u5408Redi<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"8-1-\u6dfb\u52a0\u4f9d\u8d56\">\u6dfb\u52a0\u4f9d\u8d56<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;dependency&gt;\n    &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\n    &lt;artifactId&gt;spring-boot-starter-data-redis&lt;\/artifactId&gt;\n&lt;\/dependency&gt;\n\n&lt;!-- \u8fde\u63a5\u6c60 --&gt;\n&lt;dependency&gt;\n    &lt;groupId&gt;org.apache.commons&lt;\/groupId&gt;\n    &lt;artifactId&gt;commons-pool2&lt;\/artifactId&gt;\n&lt;\/dependency&gt;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"8-2-\u914d\u7f6e\u6587\u4ef6\">\u914d\u7f6e\u6587\u4ef6<\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u8bf4\u660e\uff1a\u4ee5\u4e0b\u793a\u4f8b\u4f7f\u7528 Spring Boot 3.x \u7684\u914d\u7f6e\u524d\u7f00&nbsp;<code>spring.data.redis.*<\/code>\u3002<\/p>\n<\/blockquote>\n\n\n\n<pre class=\"wp-block-code\"><code>spring:\n  data:\n    redis:\n      host: localhost\n      port: 6379\n      password:\n      database: 0\n      timeout: 3000ms\n      lettuce:\n        pool:\n          max-active: 8      # \u6700\u5927\u8fde\u63a5\u6570\n          max-idle: 8        # \u6700\u5927\u7a7a\u95f2\u8fde\u63a5\n          min-idle: 0        # \u6700\u5c0f\u7a7a\u95f2\u8fde\u63a5\n          max-wait: 1000ms   # \u6700\u5927\u7b49\u5f85\u65f6\u95f4<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"8-3-\u4f7f\u7528stringredistemplate\">\u4f7f\u7528StringRedisTemplate<\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u8fd9\u4e00\u90e8\u5206\u662f Spring Boot \u6574\u5408 Redis \u7684\u4e3b\u7ebf\u5185\u5bb9\uff0c\u91cd\u70b9\u638c\u63e1\u65e5\u5e38\u5b57\u7b26\u4e32\u3001\u54c8\u5e0c\u3001\u5217\u8868\u3001\u96c6\u5408\u548c\u6709\u5e8f\u96c6\u5408\u64cd\u4f5c\u3002<\/p>\n<\/blockquote>\n\n\n\n<pre class=\"wp-block-code\"><code>@Service\npublic class RedisService {\n\n    @Autowired\n    private StringRedisTemplate redisTemplate;\n\n    \/\/ String\u64cd\u4f5c\n    public void stringOps() {\n        redisTemplate.opsForValue().set(\"key\", \"value\");\n        redisTemplate.opsForValue().set(\"key\", \"value\", 30, TimeUnit.SECONDS);\n        String value = redisTemplate.opsForValue().get(\"key\");\n    }\n\n    \/\/ Hash\u64cd\u4f5c\n    public void hashOps() {\n        redisTemplate.opsForHash().put(\"user:profile:1\", \"name\", \"\u5f20\u4e09\");\n        redisTemplate.opsForHash().put(\"user:profile:1\", \"age\", \"25\");\n        Map&lt;Object, Object&gt; entries = redisTemplate.opsForHash().entries(\"user:profile:1\");\n    }\n\n    \/\/ List\u64cd\u4f5c\n    public void listOps() {\n        redisTemplate.opsForList().leftPush(\"queue\", \"task1\");\n        String task = redisTemplate.opsForList().rightPop(\"queue\");\n    }\n\n    \/\/ Set\u64cd\u4f5c\n    public void setOps() {\n        redisTemplate.opsForSet().add(\"tags\", \"java\", \"redis\");\n        Set&lt;String&gt; tags = redisTemplate.opsForSet().members(\"tags\");\n    }\n\n    \/\/ Sorted Set\u64cd\u4f5c\n    public void zsetOps() {\n        redisTemplate.opsForZSet().add(\"rank\", \"player1\", 100);\n        Set&lt;ZSetOperations.TypedTuple&lt;String&gt;&gt; top =\n            redisTemplate.opsForZSet().reverseRangeWithScores(\"rank\", 0, 9);\n    }\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"8-4-\u4f7f\u7528redistemplate-\u5bf9\u8c61\u5e8f\u5217\u5316\">\u4f7f\u7528RedisTemplate\uff08\u5bf9\u8c61\u5e8f\u5217\u5316\uff09<\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\ud83d\udca1&nbsp;<strong>\u8bfe\u5802\u5b9a\u4f4d<\/strong>\uff1a\u8fd9\u4e00\u90e8\u5206\u4f5c\u4e3a\u8865\u5145\u4e86\u89e3\uff0c\u91cd\u70b9\u77e5\u9053\u5f53 value \u4e0d\u518d\u662f\u7b80\u5355\u5b57\u7b26\u4e32\u65f6\uff0c\u901a\u5e38\u9700\u8981\u8003\u8651\u5e8f\u5217\u5316\u65b9\u5f0f\u3002<\/p>\n<\/blockquote>\n\n\n\n<pre class=\"wp-block-code\"><code>@Configuration\npublic class RedisConfig {\n\n    @Bean\n    public RedisTemplate&lt;String, Object&gt; redisTemplate(RedisConnectionFactory factory) {\n        RedisTemplate&lt;String, Object&gt; template = new RedisTemplate&lt;&gt;();\n        template.setConnectionFactory(factory);\n\n        \/\/ \u4f7f\u7528JSON\u5e8f\u5217\u5316\uff0c\u907f\u514d Jackson \u7248\u672c\u5dee\u5f02\u5e26\u6765\u7684\u7f16\u8bd1\u95ee\u9898\n        StringRedisSerializer stringSerializer = new StringRedisSerializer();\n        GenericJackson2JsonRedisSerializer jsonSerializer = new GenericJackson2JsonRedisSerializer();\n\n        \/\/ \u8bbe\u7f6ekey\u548cvalue\u7684\u5e8f\u5217\u5316\u65b9\u5f0f\n        template.setKeySerializer(stringSerializer);\n        template.setValueSerializer(jsonSerializer);\n        template.setHashKeySerializer(stringSerializer);\n        template.setHashValueSerializer(jsonSerializer);\n\n        template.afterPropertiesSet();\n        return template;\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u4f7f\u7528\u793a\u4f8b<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u914d\u7f6e\u597d&nbsp;<code>RedisTemplate&lt;String, Object&gt;<\/code>&nbsp;\u4e4b\u540e\uff0c\u5c31\u53ef\u4ee5\u76f4\u63a5\u628a\u666e\u901a Java \u5bf9\u8c61\u4f5c\u4e3a value \u5b58\u5165 Redis\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class User {\n    private Integer id;\n    private String name;\n    private Integer age;\n\n    public User() {\n    }\n\n    public User(Integer id, String name, Integer age) {\n        this.id = id;\n        this.name = name;\n        this.age = age;\n    }\n\n    public Integer getId() {\n        return id;\n    }\n\n    public void setId(Integer id) {\n        this.id = id;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public Integer getAge() {\n        return age;\n    }\n\n    public void setAge(Integer age) {\n        this.age = age;\n    }\n}<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>@Service\npublic class UserRedisService {\n\n    @Autowired\n    private RedisTemplate&lt;String, Object&gt; redisTemplate;\n\n    public void saveUser() {\n        User user = new User(1, \"\u5f20\u4e09\", 25);\n        redisTemplate.opsForValue().set(\"user:object:1\", user);\n        redisTemplate.expire(\"user:object:1\", 30, TimeUnit.MINUTES);\n    }\n\n    public User getUser() {\n        Object obj = redisTemplate.opsForValue().get(\"user:object:1\");\n        return obj == null ? null : (User) obj;\n    }\n}<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>@RestController\n@RequestMapping(\"\/redis\/user\")\npublic class UserRedisController {\n\n    @Autowired\n    private UserRedisService userRedisService;\n\n    @GetMapping(\"\/save\")\n    public String saveUser() {\n        userRedisService.saveUser();\n        return \"\u4fdd\u5b58\u6210\u529f\";\n    }\n\n    @GetMapping\n    public User getUser() {\n        return userRedisService.getUser();\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u8bf4\u660e<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5199\u5165\u65f6\uff0c<code>User<\/code>\u00a0\u5bf9\u8c61\u4f1a\u5148\u88ab\u5e8f\u5217\u5316\u6210 JSON \u518d\u5b58\u5165 Redis<\/li>\n\n\n\n<li>\u8bfb\u53d6\u65f6\uff0cRedisTemplate \u4f1a\u6309\u914d\u7f6e\u7684\u5e8f\u5217\u5316\u5668\u628a JSON \u53cd\u5e8f\u5217\u5316\u56de Java \u5bf9\u8c61<\/li>\n\n\n\n<li>\u540c\u4e00\u4e2a key \u53ea\u80fd\u5bf9\u5e94\u4e00\u79cd\u6570\u636e\u7c7b\u578b\uff0c\u4f8b\u5982\u00a0<code>user:profile:1<\/code>\u00a0\u7528\u4f5c Hash \u65f6\uff0c\u5c31\u4e0d\u8981\u518d\u62ff\u00a0<code>user:profile:1<\/code>\u00a0\u53bb\u5b58\u666e\u901a\u5b57\u7b26\u4e32\u6216\u5bf9\u8c61\uff0c\u5426\u5219\u4f1a\u62a5\u00a0<code>WRONGTYPE Operation against a key holding the wrong kind of value<\/code><\/li>\n\n\n\n<li>\u5982\u679c\u9879\u76ee\u91cc\u53ea\u662f\u4fdd\u5b58\u7b80\u5355\u5b57\u7b26\u4e32\uff0c\u4f18\u5148\u4f7f\u7528\u00a0<code>StringRedisTemplate<\/code>\uff1b\u53ea\u6709\u5728\u9700\u8981\u76f4\u63a5\u5b58\u5bf9\u8c61\u65f6\uff0c\u518d\u8003\u8651\u00a0<code>RedisTemplate&lt;String, Object><\/code><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u9644\u5f55\uff1a\u6570\u636e\u7ed3\u6784\u5e94\u7528\u573a\u666f\u901f\u67e5\u8868<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">\u6570\u636e\u7ed3\u6784<\/th><th class=\"has-text-align-left\" data-align=\"left\">\u4e3b\u8981\u5e94\u7528\u573a\u666f<\/th><th class=\"has-text-align-left\" data-align=\"left\">\u5173\u952e\u4f18\u52bf<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>String<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u7f13\u5b58\u3001\u8ba1\u6570\u5668<\/td><td class=\"has-text-align-left\" data-align=\"left\">\u539f\u5b50\u64cd\u4f5c\u3001\u53ef\u8bbe\u7f6e\u8fc7\u671f<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Hash<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u5bf9\u8c61\u5b58\u50a8\u3001\u8d2d\u7269\u8f66<\/td><td class=\"has-text-align-left\" data-align=\"left\">\u8282\u7701\u5185\u5b58\u3001\u5b57\u6bb5\u72ec\u7acb\u66f4\u65b0<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>List<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u6d88\u606f\u961f\u5217\u3001\u65f6\u95f4\u7ebf<\/td><td class=\"has-text-align-left\" data-align=\"left\">\u53cc\u5411\u64cd\u4f5c\u3001\u963b\u585e\u8bfb\u53d6<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Set<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u53bb\u91cd\u3001\u793e\u4ea4\u5173\u7cfb<\/td><td class=\"has-text-align-left\" data-align=\"left\">\u5929\u7136\u53bb\u91cd\u3001\u96c6\u5408\u8fd0\u7b97<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Sorted Set<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">\u6392\u884c\u699c\u3001\u8303\u56f4\u67e5\u8be2<\/td><td class=\"has-text-align-left\" data-align=\"left\">\u81ea\u52a8\u6392\u5e8f\u3001\u8303\u56f4\u67e5\u8be2<\/td><\/tr><\/tbody><\/table><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>\u5f15\u8a00 Web\u53d1\u5c55\u5386\u7a0b \u8fc4\u4eca\u4e3a\u6b62\uff0c\u4e92\u8054\u7f51\u7684\u53d1\u5c55\u5df2\u7ecf\u7ecf\u5386\u4e86\u4e24\u4e2a\u9636\u6bb5\uff1aWeb 1.0 \u548c Web 2.0\u3002 \u9636\u6bb5 \u7279 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[5],"class_list":["post-267","post","type-post","status-publish","format-standard","hentry","category-learn","tag-5"],"_links":{"self":[{"href":"https:\/\/larkdrop.cafe\/index.php\/wp-json\/wp\/v2\/posts\/267","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/larkdrop.cafe\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/larkdrop.cafe\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/larkdrop.cafe\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/larkdrop.cafe\/index.php\/wp-json\/wp\/v2\/comments?post=267"}],"version-history":[{"count":1,"href":"https:\/\/larkdrop.cafe\/index.php\/wp-json\/wp\/v2\/posts\/267\/revisions"}],"predecessor-version":[{"id":268,"href":"https:\/\/larkdrop.cafe\/index.php\/wp-json\/wp\/v2\/posts\/267\/revisions\/268"}],"wp:attachment":[{"href":"https:\/\/larkdrop.cafe\/index.php\/wp-json\/wp\/v2\/media?parent=267"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/larkdrop.cafe\/index.php\/wp-json\/wp\/v2\/categories?post=267"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/larkdrop.cafe\/index.php\/wp-json\/wp\/v2\/tags?post=267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}