java用redis緩存的步驟 零基礎(chǔ)的人如何學(xué)習(xí)Java?
零基礎(chǔ)的人如何學(xué)習(xí)Java?我已經(jīng)使用java很長(zhǎng)時(shí)間了,并且已經(jīng)出版了關(guān)于java的書(shū)籍,所以讓我來(lái)談?wù)剬W(xué)習(xí)java的過(guò)程。java學(xué)習(xí)的重點(diǎn)是web開(kāi)發(fā),學(xué)習(xí)的難點(diǎn)是對(duì)java面向?qū)ο蟾拍畹睦斫狻?/p>
零基礎(chǔ)的人如何學(xué)習(xí)Java?
我已經(jīng)使用java很長(zhǎng)時(shí)間了,并且已經(jīng)出版了關(guān)于java的書(shū)籍,所以讓我來(lái)談?wù)剬W(xué)習(xí)java的過(guò)程。
java學(xué)習(xí)的重點(diǎn)是web開(kāi)發(fā),學(xué)習(xí)的難點(diǎn)是對(duì)java面向?qū)ο蟾拍畹睦斫?。學(xué)習(xí)java需要一個(gè)系統(tǒng)的過(guò)程,在學(xué)習(xí)java的不同階段需要做不同的準(zhǔn)備。下面是一個(gè)描述(以web開(kāi)發(fā)為例)。
在第一階段,我為自己設(shè)定了方向。例如,我想在將來(lái)做web開(kāi)發(fā)或Android開(kāi)發(fā)。當(dāng)我有了方向,我自然知道我的重點(diǎn)是什么。畢竟,編程語(yǔ)言是一種工具,所以在學(xué)習(xí)工具之前我需要知道該怎么做。
第二階段是開(kāi)始了解Java的語(yǔ)法細(xì)節(jié)。此階段的準(zhǔn)備工作是構(gòu)建開(kāi)發(fā)環(huán)境并安裝JDK。在學(xué)習(xí)初期,建議使用記事本編程,鍛煉程序員的手寫(xiě)代碼能力,并在編程初期養(yǎng)成一些好習(xí)慣。
第三階段是開(kāi)始學(xué)習(xí)web開(kāi)發(fā)。在這個(gè)階段,我們需要準(zhǔn)備數(shù)據(jù)庫(kù)知識(shí)和一些前端知識(shí)。數(shù)據(jù)庫(kù)產(chǎn)品可以選擇mysql,mysql也是一種應(yīng)用廣泛的數(shù)據(jù)庫(kù)產(chǎn)品。
第四階段開(kāi)始學(xué)習(xí)框架開(kāi)發(fā)??蚣荛_(kāi)發(fā)可以節(jié)省大量的開(kāi)發(fā)時(shí)間。目前,springmvc得到了廣泛的應(yīng)用。
第五階段開(kāi)始實(shí)習(xí)。實(shí)習(xí)對(duì)程序員的成長(zhǎng)有很大的幫助。通過(guò)實(shí)際項(xiàng)目的磨練,我們將更全面地掌握編程語(yǔ)言。
有些“上古”程序員一直堅(jiān)持反對(duì)使用redis怎么辦?
分享大人物的答案似乎合情合理。
不要告訴我們是否使用redis。你必須告訴我們你為什么要使用redis。沒(méi)有redis的業(yè)務(wù)怎么了?世界上沒(méi)有免費(fèi)的午餐。如果不直接使用頭部緩存/NoSQL,可能會(huì)帶來(lái)越來(lái)越嚴(yán)重的問(wèn)題。
單個(gè)數(shù)據(jù)庫(kù)的最大優(yōu)點(diǎn)是易于實(shí)現(xiàn)事務(wù),并由數(shù)據(jù)庫(kù)本身保證。舉個(gè)簡(jiǎn)單的例子,要下訂單,需要扣除庫(kù)存并插入訂單條目。如果inventory和order都是數(shù)據(jù)庫(kù)表?xiàng)l目,那么這個(gè)事務(wù)是無(wú)可挑剔的。如果庫(kù)存在redis中,訂單條目是mysql,通常需要先寫(xiě)redis,成功后再寫(xiě)數(shù)據(jù)庫(kù)。如果您寫(xiě)數(shù)據(jù)庫(kù)失敗,需要回滾redis,如果由于網(wǎng)絡(luò)或其他原因回滾失敗,將再扣減一個(gè)存貨。不要認(rèn)為這些事情很容易解決。事務(wù)處理的復(fù)雜性遠(yuǎn)遠(yuǎn)超出您的想象。例如,當(dāng)您編寫(xiě)mysql時(shí),您在提交時(shí)就失去了連接。你無(wú)法判斷提交是成功還是失敗。你的redis是不是在倒退?
因此,當(dāng)您引入一個(gè)新層時(shí),您必須弄清楚您必須使用cache/NoSQL的目的以及您可以接受的一致性模型。否則,你就要出丑了。