第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

redis 緩存方案--有沒有可用的?

redis 緩存方案--有沒有可用的?

千萬(wàn)里不及你 2019-03-21 15:13:17
現(xiàn)在的方案是,sql 作為key 查詢結(jié)果序列化后 存入value 。表如果有數(shù)據(jù)修改添加刪除,flushDB()。但是整個(gè)項(xiàng)目只要有數(shù)據(jù)變更緩存就沒了。誰(shuí)還有其他方案?想知道的就是數(shù)據(jù)增刪改對(duì)redis都有操作后再對(duì)數(shù)據(jù)庫(kù)操作,redis里查詢的永遠(yuǎn)是最新的,當(dāng)某些原因redis里查不到時(shí)查數(shù)據(jù)庫(kù)然后保存到reids里。這種方案有誰(shuí)實(shí)現(xiàn)了嗎?
查看完整描述

6 回答

?
慕沐林林

TA貢獻(xiàn)2016條經(jīng)驗(yàn) 獲得超9個(gè)贊

為啥要用sql作為key....還每次flushdb,你可以換個(gè)思路,假如有個(gè)表是商品,主鍵是id,你可以建一個(gè)key是detail:商品id的緩存,把這行記錄作為value,數(shù)據(jù)類型hash或string都行。有些時(shí)候你的業(yè)務(wù)要根據(jù)主鍵查某條商品信息的時(shí)候,先去redis看看有沒有detail:主鍵的緩存,有的時(shí)候就直接取緩存,沒有命中緩存然后查數(shù)據(jù)庫(kù),并把查詢結(jié)果存入緩存。還有就是當(dāng)有該條記錄變更的時(shí)候,可以直接刪掉緩存,也可以u(píng)pdate緩存。
這只是一個(gè)很簡(jiǎn)單的例子,redis數(shù)據(jù)類型很豐富的,合理使用可以用得很爽。還有,上面例子,可以設(shè)置每個(gè)緩存后給這條緩存設(shè)置一個(gè)有效期,好比一周,看你業(yè)務(wù)了。一般來說老的東西用戶看得比較少,那么到期后沒人瀏覽就不重建了,保證你redis一直是熱數(shù)據(jù)。不至于一堆陳年數(shù)據(jù),手機(jī)打字好累,有用請(qǐng)給贊


查看完整回答
反對(duì) 回復(fù) 2019-04-19
?
慕蓋茨4494581

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊

緩存的意義就是存儲(chǔ)熱門的數(shù)據(jù),比如說在redis中存儲(chǔ)數(shù)據(jù)庫(kù)經(jīng)常要用到的數(shù)據(jù),這樣就不必每次查詢數(shù)據(jù)庫(kù)了。

樓主遇到的問題是緩存里的數(shù)據(jù)如何跟數(shù)據(jù)庫(kù)的數(shù)據(jù)保持一致的問題。
像上面說到的表如果有數(shù)據(jù)修改添加刪除,flushDB(),是不可取的。

對(duì)緩存數(shù)據(jù)的操作實(shí)際上簡(jiǎn)化下來就是

當(dāng)你的應(yīng)用查詢r(jià)edis時(shí),如果發(fā)現(xiàn)查不到,這個(gè)時(shí)候就要去查數(shù)據(jù)庫(kù),并把查出來的數(shù)據(jù)存到redis中。
當(dāng)數(shù)據(jù)庫(kù)的數(shù)據(jù)有改動(dòng)時(shí),上面說到的數(shù)據(jù)增刪改對(duì)redis都有操作后再對(duì)數(shù)據(jù)庫(kù)操作,其實(shí)也是不可取的,應(yīng)用應(yīng)先修改數(shù)據(jù)庫(kù),成功了之后再對(duì)redis更新。如果先對(duì)redis更新,但對(duì)數(shù)據(jù)庫(kù)的更新失敗了怎么辦?redis不就存儲(chǔ)有臟數(shù)據(jù)了嗎。

另外,緩存中的數(shù)據(jù)是可以設(shè)置失效時(shí)間的(expire timeout),過了失效時(shí)間,就再查一次數(shù)據(jù)庫(kù),更新一下數(shù)據(jù)(即使數(shù)據(jù)根本沒變過),在失效時(shí)間之前,至少減少了數(shù)據(jù)庫(kù)的負(fù)載。

看樓主題目的意思,有一種想把redis當(dāng)做數(shù)據(jù)庫(kù)數(shù)據(jù)的備份一樣,那樣就不是用redis緩存的意義了(也許應(yīng)該考慮數(shù)據(jù)庫(kù)主從備份)。

至于你說的方案,看題目的描述,這并不是需要一個(gè)方案(我覺得高可用配置,考慮數(shù)據(jù)的一致性強(qiáng)弱等等方面才稱之為方案)。
實(shí)際上是代碼的邏輯,看代碼怎么寫。


查看完整回答
反對(duì) 回復(fù) 2019-04-19
?
繁花如伊

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊

spring 有redis插件,小項(xiàng)目用ehcache,spring插件比較方便。


查看完整回答
反對(duì) 回復(fù) 2019-04-19
?
守著一只汪

TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個(gè)贊

實(shí)現(xiàn)過@Cacheable,使用在servicedao層的方法上,用來進(jìn)行攔截,直接去redis取數(shù)據(jù)。


查看完整回答
反對(duì) 回復(fù) 2019-04-19
  • 6 回答
  • 0 關(guān)注
  • 642 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)