• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      緩存技術(shù)在酒店門戶網(wǎng)站中應(yīng)用

      2021-09-10 20:24:24張丹陽(yáng)萬(wàn)安
      科學(xué)與生活 2021年10期

      張丹 陽(yáng)萬(wàn)安

      摘要: 在全球經(jīng)濟(jì)化的大形勢(shì)下,酒店門戶網(wǎng)站趨于國(guó)際化,網(wǎng)站實(shí)現(xiàn)了多語(yǔ)言,多匯率,各個(gè)國(guó)家的稅率也存在差異,此時(shí)將緩存技術(shù)應(yīng)用到酒店門戶網(wǎng)站的訂房系統(tǒng)中,可以極大的提高房型價(jià)格的查詢效率.

      關(guān)鍵詞:緩存結(jié)束、Redis、酒店門戶網(wǎng)站、多語(yǔ)言

      1引言

      應(yīng)用中使用緩存技術(shù),往往可以大大減少計(jì)算量,有效提升響應(yīng)速度,讓有限的資源服務(wù)更多的用戶。但是,似乎還沒(méi)有一種緩存方案可以滿足所有的業(yè)務(wù)場(chǎng)景,我們需要根據(jù)自身的特殊場(chǎng)景和背景,選擇最適合的緩存方案,盡量以最小的成本最快的效率達(dá)到最優(yōu)的目的。本文根據(jù)酒店實(shí)際應(yīng)用場(chǎng)景將從多個(gè)方面對(duì)緩存進(jìn)行分析,以便選擇出最優(yōu)的緩存方案。

      2緩存的理解

      2.1 緩存的優(yōu)點(diǎn)

      總結(jié)來(lái)說(shuō),緩存在如下三個(gè)方面做了提升:

      性能——將相應(yīng)數(shù)據(jù)存儲(chǔ)起來(lái)以避免數(shù)據(jù)的重復(fù)創(chuàng)建、處理和傳輸,可有效提高性能;穩(wěn)定性——同一個(gè)應(yīng)用中,緩存數(shù)據(jù)也能降低對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)次數(shù),降低數(shù)據(jù)庫(kù)的負(fù)擔(dān)和提高數(shù)據(jù)庫(kù)的服務(wù)能力;

      可用性——有時(shí),提供數(shù)據(jù)信息的服務(wù)可能會(huì)意外停止,緩存技術(shù)可以在一定時(shí)間內(nèi)仍正常提供對(duì)最終用戶的支持,提高了系統(tǒng)的可用性。

      2.2 Redis簡(jiǎn)介

      Redis 是一個(gè)開源(BSD許可)的,內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)系統(tǒng),它可以用作數(shù)據(jù)庫(kù)、緩存和消息中間件[1]。 它支持多種類型的數(shù)據(jù)結(jié)構(gòu),是一個(gè)高性能的 key-value 數(shù)據(jù)庫(kù)。

      Redis 與其他 key - value 緩存產(chǎn)品有以下三個(gè)特點(diǎn):

      ·Redis支持?jǐn)?shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保存在磁盤中,重啟的時(shí)候可以再次加載進(jìn)行使用。

      ·Redis不僅僅支持簡(jiǎn)單的key-value類型的數(shù)據(jù),同時(shí)還提供list,set,zset,hash等數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)。

      ·Redis支持?jǐn)?shù)據(jù)的備份,即master-slave模式的數(shù)據(jù)備份。

      3 Redis與MemoeryCache實(shí)際應(yīng)用

      3.1應(yīng)用場(chǎng)景

      對(duì)于全球化的大型酒店,由于地域不同,不同酒店之間的價(jià)格存在差異,同時(shí)不同地域之間的人訪問(wèn)同一酒店同一房型,同一房型按照配套存在不同的價(jià)格,如上圖所示,由于地域不一致則展示的價(jià)格應(yīng)按照當(dāng)?shù)貐R率轉(zhuǎn)換展示,這就需要進(jìn)行大量地根據(jù)匯率計(jì)算不同的價(jià)格,如同一個(gè)位于北京的酒店,在某一時(shí)間段,世界各地的人通過(guò)訪問(wèn)酒店官網(wǎng)預(yù)訂北京這家酒店的房間,那就需要進(jìn)行幾十次按照匯率進(jìn)行價(jià)格的計(jì)算,與此同時(shí),還需要根據(jù)訪問(wèn)網(wǎng)站的人是會(huì)員還是非會(huì)員展示不同的價(jià)格,以及原始價(jià)格等。如果大量的人訪問(wèn)這一酒店就會(huì)產(chǎn)生大量的數(shù)據(jù)訪問(wèn)及計(jì)算,而且中間還會(huì)涉及調(diào)用算稅相關(guān)api,如果進(jìn)入酒店的查看價(jià)格頁(yè)面需要展示所有房型的價(jià)格,那頁(yè)面將需要很長(zhǎng)時(shí)間去計(jì)算各個(gè)房型不同的價(jià)格,勢(shì)必導(dǎo)致頁(yè)面加載緩慢。

      3.2解決策略

      1.首先對(duì)于酒店價(jià)格這些數(shù)據(jù),價(jià)格在一天時(shí)間內(nèi)變化頻率不高,則不需要平凡更新緩存。

      2.由于不同酒店在不同語(yǔ)言不同匯率下以及不同房型以及入住人數(shù)存在各種價(jià)格,非關(guān)系型數(shù)據(jù)庫(kù)Redis的存儲(chǔ)可以采用Key-value的方式存儲(chǔ),則我們可以按照價(jià)格體系的需求,將數(shù)據(jù)組合成方便查詢的結(jié)構(gòu)轉(zhuǎn)換成json存儲(chǔ)在redis中。

      3.所以讀寫性能很好,可以達(dá)到10w/s的頻率,有效減少了頁(yè)面加載數(shù)據(jù)的時(shí)間。

      同時(shí)采用MemeoryCache來(lái)緩存酒店的一些固定數(shù)據(jù),如酒店code、折扣率等。

      3.3具體實(shí)現(xiàn)思路

      當(dāng)一個(gè)用戶在世界某地訪問(wèn)網(wǎng)站一個(gè)酒店查詢價(jià)格,則需要根據(jù)用戶選擇語(yǔ)言及匯率展示價(jià)格,首先網(wǎng)站會(huì)默認(rèn)從Redis緩存查詢是否存在對(duì)應(yīng)的價(jià)格,所存在則直接展示給用戶,若對(duì)應(yīng)語(yǔ)言下價(jià)格不存在,則需要按以下流程處理價(jià)格。

      首先,從價(jià)格平臺(tái)獲取改酒店所有房型及各個(gè)價(jià)格組合的原始價(jià)格。

      其次,循環(huán)各個(gè)價(jià)格組合,將原始價(jià)格根據(jù)匯率計(jì)算出會(huì)員價(jià)格,非會(huì)員價(jià)格,這兩種價(jià)格中又包含總價(jià)、稅、稅前價(jià),稅后價(jià)。將計(jì)算出的價(jià)格存入對(duì)應(yīng)的實(shí)體模型列表中。

      最后,根據(jù)當(dāng)前用戶訪問(wèn)的酒店id,語(yǔ)言,優(yōu)惠碼,以及入住時(shí)間和人數(shù)組合成為key,上述步驟中的價(jià)格實(shí)體列表轉(zhuǎn)換為json,存入對(duì)應(yīng)的價(jià)格數(shù)據(jù)庫(kù)。

      那么如果其他用戶選擇同一語(yǔ)言下同一酒店訪問(wèn)價(jià)格查詢頁(yè)面的時(shí)候,就會(huì)直接從Redis緩存中獲取計(jì)算后的價(jià)格,及時(shí)響應(yīng)給頁(yè)面,極大的提高了網(wǎng)頁(yè)加載速度。

      緩存過(guò)期策略方面,由于酒店價(jià)格變化并不是很頻繁,所以網(wǎng)站價(jià)格緩存采用一個(gè)小時(shí)自動(dòng)清空價(jià)格組合下對(duì)應(yīng)語(yǔ)言的緩存,那當(dāng)用戶再次訪問(wèn)時(shí),又重新計(jì)算后存入對(duì)應(yīng)key中。

      結(jié)束語(yǔ)

      利用Redis來(lái)緩存價(jià)格,極大的提高了價(jià)格展示頁(yè)面的加載速度,即使稅率Api不響應(yīng),我們也可以獲取緩存中的價(jià)格進(jìn)行展示,所以通過(guò)這次實(shí)踐,意識(shí)到為了解決很多實(shí)際應(yīng)用,需要多種技術(shù)的組合,才能找出最優(yōu)解。

      參考文獻(xiàn):

      [1]Josial L.Carison. Redis實(shí)戰(zhàn).北京:人民郵電出版社,2015:10.

      [2]ROBERT C. MARTIN.敏捷軟件開發(fā)[M].北京:機(jī)械工業(yè)出版社,2008:388.

      [3] 李航 . 敏捷型軟件開發(fā)方法與極限編程概述 [J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2003 ,24(10):116-118.

      宜賓學(xué)院人工智能與大數(shù)據(jù)學(xué)部 644000

      沙河市| 镶黄旗| 合作市| 博湖县| 海兴县| 永和县| 会昌县| 明水县| 凤台县| 兖州市| 贵州省| 当阳市| 汝阳县| 洪湖市| 峡江县| 庆元县| 诏安县| 日照市| 德惠市| 偏关县| 手机| 都匀市| 阳山县| 峡江县| 镇安县| 化州市| 泗洪县| 永宁县| 连州市| 志丹县| 怀远县| 贵港市| 奉贤区| 巴林左旗| 思南县| 芮城县| 红原县| 新平| 惠安县| 若尔盖县| 苗栗县|