<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>应用场景 on Elastic Code</title><link>https://my.elastic-code.com/zh/docs/redis/%E9%AB%98%E7%BA%A7/%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF/</link><description>Recent content in 应用场景 on Elastic Code</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><copyright>© 2026 Elastic Code</copyright><atom:link href="https://my.elastic-code.com/zh/docs/redis/%E9%AB%98%E7%BA%A7/%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF/index.xml" rel="self" type="application/rss+xml"/><item><title>分布式缓存</title><link>https://my.elastic-code.com/zh/docs/redis/%E9%AB%98%E7%BA%A7/%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF/%E5%88%86%E5%B8%83%E5%BC%8F%E7%BC%93%E5%AD%98/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://my.elastic-code.com/zh/docs/redis/%E9%AB%98%E7%BA%A7/%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF/%E5%88%86%E5%B8%83%E5%BC%8F%E7%BC%93%E5%AD%98/</guid><description/></item><item><title>分布式锁</title><link>https://my.elastic-code.com/zh/docs/redis/%E9%AB%98%E7%BA%A7/%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF/%E5%88%86%E5%B8%83%E5%BC%8F%E9%94%81/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://my.elastic-code.com/zh/docs/redis/%E9%AB%98%E7%BA%A7/%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF/%E5%88%86%E5%B8%83%E5%BC%8F%E9%94%81/</guid><description>&lt;h2 class="relative group"&gt;特性
 &lt;div id="特性" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%89%b9%e6%80%a7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;互斥性： 锁的目的是获取资源的使用权，因此只能一个竞争者持有锁&lt;/li&gt;
&lt;li&gt;安全性： 一个竞争者持有锁期间，若因为意外情况未能及时释放锁，也有兜底策略释放锁，保证其他的竞争者可以获得锁&lt;/li&gt;
&lt;li&gt;对称性： 同一个锁的枷锁和解锁必须是同一个竞争者， 不能把其他竞争者的锁给释放掉了&lt;/li&gt;
&lt;li&gt;可靠性： 需要一定的异常处理能力，容灾能力&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;实现
 &lt;div id="实现" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%ae%9e%e7%8e%b0" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;set key value NX PX expire
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;// key 为锁标识
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;// value 为持锁者标识，只能持有者操作锁，非持有者不可操作，保证了**对称性**
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;// NX 存在则不操作，即只有第一个人操作成功，后来者操作会失败，保证了**互斥性**
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;// expire 设置过期时间，即使意外情况没有释放锁，也会因过期自动释放锁，保证了**安全性**&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;若业务逻辑执行时间超过锁的过期时间，可以考虑&lt;strong&gt;锁续期&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>消息队列</title><link>https://my.elastic-code.com/zh/docs/redis/%E9%AB%98%E7%BA%A7/%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://my.elastic-code.com/zh/docs/redis/%E9%AB%98%E7%BA%A7/%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97/</guid><description>&lt;ol&gt;
&lt;li&gt;Lpush + Rpop / Rpush + Lpop&lt;/li&gt;
&lt;li&gt;避免轮询等，使用 Brpop，Blpop 阻塞式获取&lt;/li&gt;
&lt;li&gt;发布订阅&lt;/li&gt;
&lt;li&gt;** Stream 实现高级消息队列**&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt=""
 width="1654"
 height="468"
 src="https://my.elastic-code.com/zh/docs/redis/%E9%AB%98%E7%BA%A7/%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97/static/Kx8Xbje9vo0Tdxx1uATccW4RnKb_hu_281b459cd0bc6334.png"
 srcset="https://my.elastic-code.com/zh/docs/redis/%E9%AB%98%E7%BA%A7/%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97/static/Kx8Xbje9vo0Tdxx1uATccW4RnKb_hu_281b459cd0bc6334.png 800w, https://my.elastic-code.com/zh/docs/redis/%E9%AB%98%E7%BA%A7/%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97/static/Kx8Xbje9vo0Tdxx1uATccW4RnKb_hu_1e438ce6c1623bab.png 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://my.elastic-code.com/zh/docs/redis/%E9%AB%98%E7%BA%A7/%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97/static/Kx8Xbje9vo0Tdxx1uATccW4RnKb.png"&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt=""
 width="2244"
 height="1266"
 src="https://my.elastic-code.com/zh/docs/redis/%E9%AB%98%E7%BA%A7/%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97/static/OFUGbh2C6oAM53x4Tq4cNkU3nqh_hu_1278e74fca0c2094.png"
 srcset="https://my.elastic-code.com/zh/docs/redis/%E9%AB%98%E7%BA%A7/%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97/static/OFUGbh2C6oAM53x4Tq4cNkU3nqh_hu_1278e74fca0c2094.png 800w, https://my.elastic-code.com/zh/docs/redis/%E9%AB%98%E7%BA%A7/%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97/static/OFUGbh2C6oAM53x4Tq4cNkU3nqh_hu_13c86499cf3cc2aa.png 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://my.elastic-code.com/zh/docs/redis/%E9%AB%98%E7%BA%A7/%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97/static/OFUGbh2C6oAM53x4Tq4cNkU3nqh.png"&gt;&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>秒杀</title><link>https://my.elastic-code.com/zh/docs/redis/%E9%AB%98%E7%BA%A7/%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF/%E7%A7%92%E6%9D%80/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://my.elastic-code.com/zh/docs/redis/%E9%AB%98%E7%BA%A7/%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF/%E7%A7%92%E6%9D%80/</guid><description>&lt;p&gt;某活动瞬时产生巨大的并发访问量&lt;/p&gt;

&lt;h2 class="relative group"&gt;需要解决的问题
 &lt;div id="需要解决的问题" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e9%9c%80%e8%a6%81%e8%a7%a3%e5%86%b3%e7%9a%84%e9%97%ae%e9%a2%98" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;大量的并发请求，服务器要能扛得住&lt;/li&gt;
&lt;li&gt;不能超卖&lt;/li&gt;
&lt;li&gt;避免少卖&lt;/li&gt;
&lt;li&gt;保证触达用户而非黄牛&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 class="relative group"&gt;如何高并发
 &lt;div id="如何高并发" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%a6%82%e4%bd%95%e9%ab%98%e5%b9%b6%e5%8f%91" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;将库存存储在 redis 中，通过 redis 扣减库存，这样高并发的请求打在 redis 上，并通过消息队列异步写库&lt;/p&gt;</description></item><item><title>限流</title><link>https://my.elastic-code.com/zh/docs/redis/%E9%AB%98%E7%BA%A7/%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF/%E9%99%90%E6%B5%81/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://my.elastic-code.com/zh/docs/redis/%E9%AB%98%E7%BA%A7/%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF/%E9%99%90%E6%B5%81/</guid><description>&lt;h2 class="relative group"&gt;计数器算法
 &lt;div id="计数器算法" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%ae%a1%e6%95%b0%e5%99%a8%e7%ae%97%e6%b3%95" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;

&lt;h2 class="relative group"&gt;滑动窗口算法
 &lt;div id="滑动窗口算法" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%bb%91%e5%8a%a8%e7%aa%97%e5%8f%a3%e7%ae%97%e6%b3%95" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;

&lt;h2 class="relative group"&gt;漏桶算法
 &lt;div id="漏桶算法" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%bc%8f%e6%a1%b6%e7%ae%97%e6%b3%95" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;

&lt;h2 class="relative group"&gt;令牌桶算法
 &lt;div id="令牌桶算法" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%bb%a4%e7%89%8c%e6%a1%b6%e7%ae%97%e6%b3%95" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;</description></item></channel></rss>