最近在自己的工作中,把其中一個(gè)PHP項(xiàng)目的緩存從以前的APC緩存逐漸切換到Redis中,并且根據(jù)Redis所支持的數(shù)據(jù)結(jié)構(gòu)做了庫(kù)存維護(hù)功能。緩存是在業(yè)務(wù)層做的,準(zhǔn)確講應(yīng)該是在MVC模型中ModelORM里面。主要邏輯就是先查緩存,查不到的話再查數(shù)據(jù)庫(kù)。不過這些不是本文的主要內(nèi)容,下面我把庫(kù)存管理功能的緩存設(shè)計(jì)思路分享一下,希望能帶給大家一些收獲,有不足之處或者有更好方案的,也希望各位多多指教。

 

一、業(yè)務(wù)背景

 

為了略去我們公司項(xiàng)目背景,我決定把這次的問題類比成一個(gè)考卷上的問題。至于業(yè)務(wù)細(xì)節(jié),大家也無(wú)需關(guān)注~看題目就可以了:

 

假設(shè)你是某國(guó)最牛的收藏家,手里有各種價(jià)值連成的寶物。知道有一天,你覺得做收藏太沒意思了,打算把這些寶物賣掉換點(diǎn)現(xiàn)金。

 

不過把這些值錢的寶貝放在菜市場(chǎng)上賣實(shí)在太low了。在“互聯(lián)網(wǎng)+”時(shí)代,我們當(dāng)然要玩一些不一樣的賣法:在你名下有一棟300個(gè)房間的大樓(編號(hào)為001300),每個(gè)房間放著一個(gè)密碼鎖保險(xiǎn)箱,在下個(gè)月