并发编程-24 高并发处理手段之扩容思路 + 缓存思路
生活随笔
收集整理的這篇文章主要介紹了
并发编程-24 高并发处理手段之扩容思路 + 缓存思路
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 概述
- 擴容思路
- 垂直擴展(縱向擴展)
- 水平擴展(橫向擴展)
- 緩存思路
- 緩存特征
- 緩存命中率影響因素
- 緩存分類和應用場景
- Guava Cache
- Memcache
- Redis
概述
這里只是講通用的思路,實際高并發的場景需要根據實際情況來決定方案。
擴容思路
舉個例子: 一共有60塊磚, 1個工人。每次只能搬運10塊。每次搬運耗時10分鐘,這樣的話,1個工人搬運完60塊磚,就需要1個小時。
垂直擴展(縱向擴展)
提高系統部件能力。
用上面的例子來解釋下就是:目前有120塊磚要搬(相當于高并發場景),如果使用垂直擴展的話,提高運行效率,我們調整為將工人
- 每次搬磚20塊,每次搬運耗時10分鐘,1個小時處理完成。
- 或者每次10塊,每次搬運耗時5分鐘,1個小時處理完成。
水平擴展(橫向擴展)
增加更多系統成員,就是我們通常說的集群
還是上面的例子,120塊磚要搬(相當于高并發場景) ,工人的效率保持不變,每次只能搬運10塊,每次搬運耗時10分鐘,一個小時依然是60塊磚。 使用水平擴展來模擬的話,那就增加一名工人,兩名工人,1個小時處理120塊磚。
緩存思路
緩存特征
-
命中率: 命中數/(命中數+ 沒命中數)
-
最大元素(空間): 當緩存超出設置的容量時,會觸發緩存清空策略。 因此設置合理的緩存空間,將有效的提高命中率
-
清空策略: FIFO(先進先出)、LFU(最少使用)、LRU(最近使用)、過期時間、隨機清理。
緩存命中率影響因素
- 業務場景和業務需求
- 緩存的設計(粒度和策略)
- 緩存容量和基礎設施
- …
緩存分類和應用場景
- 本地緩存:編程實現(成員變量、局部變量、靜態變量)、Guava Cache
- 分布式緩存: Redis、Memcache
Guava Cache
借鑒了ConcurrencyHashMap的設計思想
Memcache
Redis
Redis的系列文章,請參考我的Redis專欄 Redis手札
總結
以上是生活随笔為你收集整理的并发编程-24 高并发处理手段之扩容思路 + 缓存思路的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 并发编程-23J.U.C组件拓展之阻塞队
- 下一篇: 并发编程-26 高并发处理手段之服务降级