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

記一種不錯的緩存設計思路

數據庫
之前與同事討論接口性能問題時聽他介紹了一種緩存設計思路,覺得不錯,做個記錄供以后參考。

之前與同事討論接口性能問題時聽他介紹了一種緩存設計思路,覺得不錯,做個記錄供以后參考。

場景

假設有個以下格式的接口:

GET /api?keys={key1,key2,key3,...}&types={1,2,3,...}

其中 keys 是業務主鍵列表,types 是想要取到的信息的類型。

請求該接口需要返回業務主鍵列表對應的業務對象列表,對象里需要包含指定類型的信息。

業務主鍵可能的取值較多,千萬量級,type 取值范圍為 1-10,可以任意組合,每種 type 對應到數據庫是 1-N 張表,示意:

現在設想這個接口遇到了性能瓶頸,打算添加 Redis 緩存來改善響應速度,應該如何設計?

設計思路

方案一:最簡單粗暴的方法是直接使用請求的所有參數作為緩存 key,請求的返回內容為 value。

方案二:如果稍做一下思考,可能就會想到文首我提到的覺得不錯的思路了:

  • 使用 業務主鍵:表名 作為緩存 key,表名里對應的該業務主鍵的記錄作為 value;
  • 查詢時,先根據查詢參數 keys,以及 types 對應的表,得到所有 key1:tb_1_1、key1:tb_1_2 這樣的組合,使用 Redis 的 mget 命令,批量取到所有緩存中存在的信息,剩下沒有命中的,批量到數據庫里查詢到結果,并放入緩存;
  • 在某個表的數據有更新時,只需刷新 涉及業務主鍵:該表名 的緩存,或令其失效即可。

小結

在以上兩種方案之間做評估和選擇,考慮幾個方面:

  • 緩存命中率;
  • 緩存數量、占用空間大小;
  • 刷新緩存是否方便;

稍作思考和計算,就會發現此場景下方案二的優勢。

另外,就是需要根據實際業務場景,如業務對象復雜度、讀寫次數比等,來評估合適的緩存數據的粒度和層次,是對應到某一級組合后的業務對象(緩存值對應存儲 + 部分邏輯),還是最基本的數據庫表/字段(存儲的歸存儲,邏輯的歸邏輯)。

責任編輯:趙寧寧 來源: 悶騷的程序員
相關推薦

2022-06-23 07:05:46

跳板機服務器PAM

2018-04-18 07:34:58

2016-10-26 09:12:58

2014-03-17 10:30:12

網絡服務器

2020-11-27 14:45:57

開發服務器代碼

2024-05-09 08:20:29

AC架構數據庫冗余存儲

2022-08-17 09:07:09

低代碼LCDP編碼

2018-12-29 10:37:05

HTTP緩存URL

2017-07-05 14:09:04

系統設計與架構java云計算

2016-10-13 10:57:55

phptcp專欄

2017-08-24 15:02:01

前端增量式更新

2024-04-30 08:12:05

CRUD方法JavaAC架構

2019-11-22 09:21:17

技術研發數據

2024-04-26 08:58:54

if-else代碼JavaSpring

2021-05-18 06:22:39

CSS 制作波浪技巧

2020-05-12 10:00:14

緩存算法贈源碼

2010-08-23 14:25:13

marginCSS

2013-09-04 12:38:56

架構設計架構設計構思

2020-12-09 10:15:34

Pythonweb代碼

2020-05-06 11:29:29

UX設計釣魚攻擊用戶體驗
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲国产精品一区二区三区 | 视频一区二区在线观看 | 亚洲第一在线 | 亚洲成人一区 | 99久久久99久久国产片鸭王 | 久久久久久久久久久国产 | 亚洲国产一区二区三区 | 国产一区二区三区色淫影院 | 国产精品国产成人国产三级 | 午夜影院在线观看 | 久久999| 久久国产精品一区二区三区 | 日韩av在线免费 | 日韩视频三区 | 欧美爱爱视频网站 | 欧美中文字幕一区二区三区 | 97日日碰人人模人人澡分享吧 | 国产精品嫩草影院精东 | 精品欧美一区二区在线观看 | 91高清视频在线观看 | 九九热精品视频 | 日韩精品免费 | 在线观看亚洲一区二区 | 久久av网 | 国产一级片在线播放 | 国产在线观看av | 亚洲国产精品va在线看黑人 | 黄色网页在线 | 国产成人精品一区二区三区在线 | 99久久免费观看 | 美女视频h | 欧美日韩在线一区二区三区 | 91在线视频免费观看 | 日一区二区 | 精品视频一区二区三区在线观看 | 亚洲日韩中文字幕一区 | 宅男噜噜噜66一区二区 | 国产精品.xx视频.xxtv | 久久综合一区 | 在线视频亚洲 | 99久久久久久99国产精品免 |