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

記一種不錯(cuò)的緩存設(shè)計(jì)思路

數(shù)據(jù)庫(kù)
之前與同事討論接口性能問(wèn)題時(shí)聽(tīng)他介紹了一種緩存設(shè)計(jì)思路,覺(jué)得不錯(cuò),做個(gè)記錄供以后參考。

之前與同事討論接口性能問(wèn)題時(shí)聽(tīng)他介紹了一種緩存設(shè)計(jì)思路,覺(jué)得不錯(cuò),做個(gè)記錄供以后參考。

場(chǎng)景

假設(shè)有個(gè)以下格式的接口:

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

其中 keys 是業(yè)務(wù)主鍵列表,types 是想要取到的信息的類型。

請(qǐng)求該接口需要返回業(yè)務(wù)主鍵列表對(duì)應(yīng)的業(yè)務(wù)對(duì)象列表,對(duì)象里需要包含指定類型的信息。

業(yè)務(wù)主鍵可能的取值較多,千萬(wàn)量級(jí),type 取值范圍為 1-10,可以任意組合,每種 type 對(duì)應(yīng)到數(shù)據(jù)庫(kù)是 1-N 張表,示意:

現(xiàn)在設(shè)想這個(gè)接口遇到了性能瓶頸,打算添加 Redis 緩存來(lái)改善響應(yīng)速度,應(yīng)該如何設(shè)計(jì)?

設(shè)計(jì)思路

方案一:最簡(jiǎn)單粗暴的方法是直接使用請(qǐng)求的所有參數(shù)作為緩存 key,請(qǐng)求的返回內(nèi)容為 value。

方案二:如果稍做一下思考,可能就會(huì)想到文首我提到的覺(jué)得不錯(cuò)的思路了:

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

小結(jié)

在以上兩種方案之間做評(píng)估和選擇,考慮幾個(gè)方面:

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

稍作思考和計(jì)算,就會(huì)發(fā)現(xiàn)此場(chǎng)景下方案二的優(yōu)勢(shì)。

另外,就是需要根據(jù)實(shí)際業(yè)務(wù)場(chǎng)景,如業(yè)務(wù)對(duì)象復(fù)雜度、讀寫(xiě)次數(shù)比等,來(lái)評(píng)估合適的緩存數(shù)據(jù)的粒度和層次,是對(duì)應(yīng)到某一級(jí)組合后的業(yè)務(wù)對(duì)象(緩存值對(duì)應(yīng)存儲(chǔ) + 部分邏輯),還是最基本的數(shù)據(jù)庫(kù)表/字段(存儲(chǔ)的歸存儲(chǔ),邏輯的歸邏輯)。

責(zé)任編輯:趙寧寧 來(lái)源: 悶騷的程序員
相關(guān)推薦

2022-06-23 07:05:46

跳板機(jī)服務(wù)器PAM

2016-10-26 09:12:58

2018-04-18 07:34:58

2014-03-17 10:30:12

網(wǎng)絡(luò)服務(wù)器

2020-11-27 14:45:57

開(kāi)發(fā)服務(wù)器代碼

2024-05-09 08:20:29

AC架構(gòu)數(shù)據(jù)庫(kù)冗余存儲(chǔ)

2022-08-17 09:07:09

低代碼LCDP編碼

2018-12-29 10:37:05

HTTP緩存URL

2017-07-05 14:09:04

系統(tǒng)設(shè)計(jì)與架構(gòu)java云計(jì)算

2016-10-13 10:57:55

phptcp專欄

2017-08-24 15:02:01

前端增量式更新

2024-04-30 08:12:05

CRUD方法JavaAC架構(gòu)

2019-11-22 09:21:17

技術(shù)研發(fā)數(shù)據(jù)

2024-04-26 08:58:54

if-else代碼JavaSpring

2021-05-18 06:22:39

CSS 制作波浪技巧

2020-05-12 10:00:14

緩存算法贈(zèng)源碼

2010-08-23 14:25:13

marginCSS

2013-09-04 12:38:56

架構(gòu)設(shè)計(jì)架構(gòu)設(shè)計(jì)構(gòu)思

2020-12-09 10:15:34

Pythonweb代碼

2020-05-06 11:29:29

UX設(shè)計(jì)釣魚(yú)攻擊用戶體驗(yàn)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 九九伊人sl水蜜桃色推荐 | 成人一区二区在线 | 久久成人国产精品 | 99久久久国产精品 | av资源在线看 | 亚洲一区二区三区久久久 | 日韩一区二区三区在线看 | 国产激情视频网址 | 欧美成人在线网站 | 欧美二区在线 | 欧美乱大交xxxxx另类电影 | 国产综合精品一区二区三区 | www,黄色,com | 日韩手机在线视频 | 国产成人在线播放 | 久久综合久久久 | 久久久久资源 | 天堂资源| 男女激情网站免费 | 中文字幕一区二区视频 | 中文字幕人成乱码在线观看 | 最近中文字幕在线视频1 | 精品久久一 | 观看毛片 | 超碰精品在线 | 中文字幕一区二区三区不卡在线 | 黄色网址免费看 | 国产成人免费视频网站高清观看视频 | 久久不射电影网 | 国产高清精品一区二区三区 | 亚洲最色网站 | 欧美jizzhd精品欧美巨大免费 | 蜜桃免费一区二区三区 | 久久精品成人一区 | 亚洲最色网站 | 亚洲国产成人av好男人在线观看 | 国产精品jizz在线观看老狼 | 精品国产一二三区 | 亚洲欧美日韩国产综合 | 日韩精品一区二区三区中文字幕 | 97精品国产 |