課程
/后端開(kāi)發(fā)
/Java
/Java高并發(fā)秒殺API之高并發(fā)優(yōu)化
想問(wèn)問(wèn)大神們,mybatis有二級(jí)緩存,為什么還要用redis,原因是什么?
2018-01-23
源自:Java高并發(fā)秒殺API之高并發(fā)優(yōu)化
正在回答
Mybatis一級(jí)緩存作用域是session,session?commit之后緩存就失效了
Mybatis二級(jí)緩存作用域是sessionfactory,該緩存是以namespace為單位的(也就是一個(gè)Mapper.xml文件),不同namespace下的操作互不影響。所有對(duì)數(shù)據(jù)表的改變操作都會(huì)刷新緩存。但是一般不要用二級(jí)緩存,例如在UserMapper.xml中有大多數(shù)針對(duì)user表的操作。但是在另一個(gè)XXXMapper.xml中,還有針對(duì)user單表的操作。這會(huì)導(dǎo)致user在兩個(gè)命名空間下的數(shù)據(jù)不一致。如果在UserMapper.xml中做了刷新緩存的操作,在XXXMapper.xml中緩存仍然有效,如果有針對(duì)user的單表查詢,使用緩存的結(jié)果可能會(huì)不正確,讀到臟數(shù)據(jù)。
Redis比之一、二級(jí)緩存的好處很多,Redis可以搭建在其他服務(wù)器上,緩存容量可擴(kuò)展。Redis可以靈活的使用在需要緩存的數(shù)據(jù)上,比如一些熱點(diǎn)數(shù)據(jù)。
h2022 提問(wèn)者
同問(wèn)?。。?!
舉報(bào)
Java實(shí)現(xiàn)高并發(fā)秒殺API的第四門課,小伙伴一定可以從中受益
10 回答redis緩存和mybatis的緩存有啥不一樣?什么時(shí)候應(yīng)該用那種?
1 回答想問(wèn)下老師這里使用redis緩存的目的是不是只是演示下怎么進(jìn)行緩存一些不用經(jīng)常讀寫(xiě)的sql對(duì)象而不用考慮刷新緩存呢?
3 回答redis緩存的上限???
1 回答為什么不用redis的hash來(lái)存儲(chǔ)對(duì)象?
1 回答有存儲(chǔ)過(guò)程為什么還需要事務(wù)呢
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2018-08-12
Mybatis一級(jí)緩存作用域是session,session?commit之后緩存就失效了
Mybatis二級(jí)緩存作用域是sessionfactory,該緩存是以namespace為單位的(也就是一個(gè)Mapper.xml文件),不同namespace下的操作互不影響。所有對(duì)數(shù)據(jù)表的改變操作都會(huì)刷新緩存。但是一般不要用二級(jí)緩存,例如在UserMapper.xml中有大多數(shù)針對(duì)user表的操作。但是在另一個(gè)XXXMapper.xml中,還有針對(duì)user單表的操作。這會(huì)導(dǎo)致user在兩個(gè)命名空間下的數(shù)據(jù)不一致。如果在UserMapper.xml中做了刷新緩存的操作,在XXXMapper.xml中緩存仍然有效,如果有針對(duì)user的單表查詢,使用緩存的結(jié)果可能會(huì)不正確,讀到臟數(shù)據(jù)。
Redis比之一、二級(jí)緩存的好處很多,Redis可以搭建在其他服務(wù)器上,緩存容量可擴(kuò)展。Redis可以靈活的使用在需要緩存的數(shù)據(jù)上,比如一些熱點(diǎn)數(shù)據(jù)。
2018-07-30
同問(wèn)?。。?!