成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

進程內緩存,究竟怎么玩?

開發 開發工具
除了常見的redis/memcache等進程外緩存服務,緩存還有一種常見的玩法,進程內緩存。進程內緩存的實現載體,最簡單的,可以是一個帶鎖的Map。又或者,可以使用第三方庫,例如leveldb。

除了常見的redis/memcache等進程外緩存服務,緩存還有一種常見的玩法,進程內緩存。

什么是進程內緩存?

答:將一些數據緩存在站點,或者服務的進程內,這就是進程內緩存。

進程內緩存的實現載體,最簡單的,可以是一個帶鎖的Map。又或者,可以使用第三方庫,例如leveldb。

[[234126]]

進程內緩存能存儲啥?

答:redis/memcache等進程外緩存服務能存什么,進程內緩存就能存什么。

如上圖,可以存儲json數據,可以存儲html頁面,可以存儲對象。

進程內緩存有什么好處?

答:與沒有緩存相比,進程內緩存的好處是,數據讀取不再需要訪問后端,例如數據庫。

如上圖,整個訪問流程要經過1,2,3,4四個步驟。

如果引入進程內緩存,

如上圖,整個訪問流程只要經過1,2兩個步驟。

與進程外緩存相比(例如redis/memcache),進程內緩存省去了網絡開銷,所以一來節省了內網帶寬,二來響應時延會更低。

進程內緩存有什么缺點?

答:統一緩存服務雖然多一次網絡交互,但仍是統一存儲。

如上圖,站點和服務中的多個節點訪問統一的緩存服務,數據統一存儲,容易保證數據的一致性。

而進程內緩存,如上圖,如果數據緩存在站點和服務的多個節點內,數據存了多份,一致性比較難保障。

如何保證進程內緩存的數據一致性?

答:保障進程內緩存一致性,有幾種方案。

***種方案,可以通過單節點通知其他節點。如上圖:寫請求發生在server1,在修改完自己內存數據與數據庫中的數據之后,可以主動通知其他server節點,也修改內存的數據。

這種方案的缺點是:同一功能的一個集群的多個節點,相互耦合在一起,特別是節點較多時,網狀連接關系極其復雜。

第二種方案,可以通過MQ通知其他節點。如上圖,寫請求發生在server1,在修改完自己內存數據與數據庫中的數據之后,給MQ發布數據變化通知,其他server節點訂閱MQ消息,也修改內存數據。

這種方案雖然解除了節點之間的耦合,但引入了MQ,使得系統更加復雜。

前兩種方案,節點數量越多,數據冗余份數越多,數據同時更新的原子性越難保證,一致性也就越難保證。

第三種方案,為了避免耦合,降低復雜性,干脆放棄了“實時一致性”,每個節點啟動一個timer,定時從后端拉取***的數據,更新內存緩存。在有節點更新后端數據,而其他節點通過timer更新數據之間,會讀到臟數據。

為什么不能頻繁使用進程內緩存?

答:分層架構設計,有一條準則:站點層、服務層要做到無數據無狀態,這樣才能任意的加節點水平擴展,數據和狀態盡量存儲到后端的數據存儲服務,例如數據庫服務或者緩存服務。

可以看到,站點與服務的進程內緩存,實際上違背了分層架構設計的無狀態準則,故一般不推薦使用。

什么時候可以使用進程內緩存?

答:以下情況,可以考慮使用進程內緩存。

  • 情況一,只讀數據,可以考慮在進程啟動時加載到內存。畫外音:此時也可以把數據加載到redis / memcache,進程外緩存服務也能解決這類問題。
  • 情況二,極其高并發的,如果透傳后端壓力極大的場景,可以考慮使用進程內緩存。例如,秒殺業務,并發量極高,需要站點層擋住流量,可以使用內存緩存。
  • 情況三,一定程度上允許數據不一致業務。例如,有一些計數場景,運營場景,頁面對數據一致性要求較低,可以考慮使用進程內頁面緩存。

末了,再次強調,進程內緩存的適用場景并不如redis/memcache廣泛,不要為了炫技而使用。

更多的時候,還是老老實實使用redis/mc吧。

畫外音:額,介紹技術,不希望把大家帶偏了。

【本文為51CTO專欄作者“58沈劍”原創稿件,轉載請聯系原作者】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2020-02-12 11:34:56

架構平滑上云機房遷移

2011-11-16 10:46:33

Ehcache

2018-09-06 14:28:03

零售云服務智能

2018-07-05 16:15:26

緩存數據cache miss

2018-07-13 15:56:39

緩存數據庫數據

2021-04-20 18:10:22

緩存服務緩存數據緩存

2021-08-05 16:10:03

進程緩存緩存服務Java

2022-10-08 11:40:18

Receive阻塞Trigger

2022-04-28 13:58:41

Redis6客戶端服務端

2022-10-19 12:23:50

緩存CDN外部緩存

2020-12-21 09:57:33

無鎖緩存并發緩存

2018-07-12 10:33:50

Docker容器內存

2012-06-26 11:27:40

Windows Pho

2022-11-14 10:44:59

HTMLFlowable外置

2018-10-15 05:13:38

WiFi網速帶寬

2016-05-06 08:08:29

2022-03-08 00:07:51

緩存雪崩數據庫

2020-11-16 07:15:41

Linux權限管理

2017-03-28 11:39:58

深信服超融合平臺

2023-02-13 18:32:59

AI繪畫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美综合国产精品久久丁香 | 美女黄网站视频免费 | 91精品国产一区二区三区蜜臀 | 日韩久久精品视频 | 亚洲精品久久久蜜桃网站 | 亚洲高清视频在线观看 | 国产成人免费网站 | 91国内精精品久久久久久婷婷 | 韩日精品在线观看 | 天堂色网 | 欧美13videosex性极品 | 狠狠色狠狠色综合日日92 | 国产欧美精品一区二区三区 | 久久久久久久久久久久亚洲 | 国产一区二区三区久久久久久久久 | 一区二区三区视频在线观看 | 最新国产精品 | 中文字幕一区二区三区在线观看 | 男女视频91 | 亚洲综合无码一区二区 | 国产成人精品在线 | 国产精品视频在线播放 | 欧美另类视频在线 | 国产福利在线视频 | 久久久久久久久91 | 91精品国产91久久久久久吃药 | 精品久久久久久久久久久久久久 | 一区二区小视频 | 成人精品鲁一区一区二区 | 亚洲免费在线观看 | 精品在线视频播放 | 91文字幕巨乱亚洲香蕉 | 国产精品欧美一区二区三区不卡 | 一区二区三区欧美 | 欧美精品一区二区免费 | 久久天天躁狠狠躁夜夜躁2014 | 91高清视频在线观看 | 羞羞视频在线观看网站 | 免费精品久久久久久中文字幕 | 特级一级黄色片 | 成人av一区二区三区 |