999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Redis技術的頁面緩存研究

2021-06-29 08:14:39秦溧艾青
科技風 2021年12期
關鍵詞:數據庫

秦溧 艾青

摘要:隨著互聯網業務的逐漸擴大,用戶對相同數據訪問的相對集中,從而出現關系型數據庫管理系統負擔加重,數據庫響應效率低下,瀏覽器上響應延遲等重大問題。基于此,提出采用Redis高性能分布式內存緩存服務器的這一技術,來解決因數據量過大導致頁面響應延遲的問題。通過實驗以及和傳統關系型數據庫對比的結果表明,利用緩存技術查找數據,可以在一定程度上減少對數據庫的訪問,同時加快Web等應用的響應速度,提高用戶體驗感。

關鍵詞:Redis;Sql;緩存;數據庫

中圖分類號:TP311.5文獻標識碼:A

目前我們所設計的系統采用的是關系型數據庫,將數據存儲到該系統中,再通過服務器從中獲取數據,并在瀏覽器上顯示出來。但隨著數據量逐漸增大,用戶度對相同數據訪問的集中,就會出現關系型數據庫管理系統負擔加重,數據庫響應效率低下,瀏覽器上響應延遲等重大問題。特別是當我們在開發Web應用時,前端界面成為了不可獲取的一部分,但是每次用戶對我們的網頁進行訪問時,都要重新加載一次靜態資源,從而加重服務器的負擔,造成網上顯示延遲等問題,在很大程度上影響了用戶體驗感。基于以上問題,本文結合Redis高性能分布式內存緩存服務器技術,對頁面進行分布式管理。并通過實驗和對比證實了利用緩存技術查找數據,可以在一定程度上減少對數據庫的訪問,同時加快Web等應用的響應速度,提高用戶體驗感。

1 Redis概述

1.1 Redis的特性

Redis是一個基于鍵值對的存儲結構的系統,也是類屬于NOSQL的一種,它可以利用多種不同的鍵值對數據類型來滿足于不同的存儲需求,Redis優勢主要包括:

(1)性能高。由于Redis是NoSql數據庫,Redis的所有操作都是直接操作于內存之中,它的運行速度相比較于MySQL這一類傳統的關系型數據庫,就好比是在內存中進行讀寫和在硬盤中進行讀寫的差距;

(2)可使用的數據類型非常豐富,Redis能夠支持二進制的Hash,Set,String,List等數據類型的操作;

(3)支持事務,操作都是原子性,所謂的原子性就是對數據的更改要么全部執行,要么全部不執行;

(4)豐富的特性,Redis還支持publish/subscribe,通知,key過期等等特性。基于上述優勢,Redis技術最大的應用場景就是用來做緩存。緩存技術可以大大減輕服務器的壓力,減少數據丟失,提高系統中數據的一致性和完整性。[1]

Redis對于不同的常見數據類型來說,指令既有相同的,也有針對不同數據類型的特殊指令。同時Redis具有Java版本客戶端Jedis,Jedis擁有Java的主要特性之一多線程處理,通過線程來優化系統資源,通過線程操作Redis的數據,并根據實際情況對線程進行回收,極大的提高的Redis的使用效率。在提高數據獲取速度時,我們需要用一些緩存技術,Redis的最大優勢在于可將數據緩存到內存并能夠分片存儲,同時擁有很高的讀寫效率。[2]

在這個基礎之上,Redis還可以使用各種不同方式的排序,以此來滿足各種不同業務的需求,為了不影響查詢數據的速度,數據一般都是先在內存中緩存下來,區別就是Redis會在經過一段周期后的將更新后的數據重新在磁盤中進行寫入和覆蓋,又或者會把進行修改的操作寫入記錄文件中,再將此文件追加到之前的記錄文件中。前者為默認的RDB存儲模式,所謂RDB,就是將數據寫入到一個臨時的文件。等到持久化結束之后,用這個臨時文件,替換掉上次舊的持久化的文件,從而達到恢復數據的目的。優點,是只需要通過使用單獨子進程來進行持久化操作,并不需要主進程進行任何的IO操作,從而保證了redis的高效性;缺點,RDB會間隔一段時間再進行持久化操作,如果在持久化期間,redis發生了故障,會出現數據的丟失情況,所以這種方式更適合對數據要求不嚴謹的時候。由于只需要對界面的數據進行緩存,所以本文采用RDB存儲模式技術便可達到需求。

1.2 Redis存儲機制

其存儲機制默認設置為如果更改了一個Key,則間隔900秒之后進行一次持久化存儲。如果更改了十個Key則300秒之后進行一次持久化存儲,如果更改一萬個Key則自修改之時起,一分鐘之后進行一次持久化存儲,持久化完成后,將臨時文件替換掉舊的RDB。

使用RDB恢復數據也非常簡單,實際上只需重啟Redis服務即可完成。啟動的時候,redis的sever會從dump.rdb文件中先同步數據,第二種方式是AOF,是將執行過的指令記錄下來,數據恢復時,按照從前到后的順序再將指令執行一遍從而實現數據的恢復。優點,可以保持更高的數據完整性。例如,如果設置追擊File的時間是一秒,那么一旦Redis發生了故障,最多只會丟失那一秒的數據。且如果日志寫入不夠完整,支持通過RedisCheckAof來進行日志修復,Aof文件沒備注right之前可以刪除其中的某些指令。缺點,aof比rdb文件大,且恢復速度慢,因為它是以記錄操作數據為主的。

此外,通信業務的數據大部分都是數字信息,如手機號碼、imsi碼等,采用az,AZ,09組成的62進制替代10進制可以大大的節約內存,手機號碼可以從11位壓縮到6位,imsi碼可以從15位壓縮到9位。由此可以進一步節約內存。[3]

redis的應用目前已經十分廣泛,國內的淘寶,新浪,以及國外的GitHub等都在使用Redis的緩存服務。

當然,在使用Redis緩存技術之前,必須搭建分布式數據存儲系統。為了進一步提高Redis的分布式數據存儲的效率,必須同時要考慮到數據庫的負載情況,因此在開發時還需要額外搭建另一個分布式存儲系統。傳統的關系型數據庫采用中央處理器或者是內存的使用來進行代價的評估,但對于這種系統的存儲方式和數據類型往往不是很全面。在實際運行的過程中,對多類資源數據進行實時的統計,當完成對執行處理任務的線程后,完成對永不服務的主線程的響應,再以此為基礎,確定各個影響數據存儲有效性的影響因素,實現對分布式數據的可靠性評測和存儲。[4]

2 采用Redis進行頁面緩存的設計方案,以及后臺配置文件的編寫

2.1 Redis解決頁面緩存問題的方案設計

Redis作為一個NoSQL數據庫,它的簡單易用是它最主要的特點。它的本質其實是和布隆過濾器[5]類似,只是作為一個服務器和數據庫之間的一個緩沖區,當用戶要訪問數據庫時,先訪問Redis,如果Redis中有所需要的數據,便直接取出,返回到服務器;如果沒有,便去訪問數據庫,將數據庫中的數據返回給服務器,同時將數據保存一份到Redis中,便于下次的取和用。

根據此特性,我可以解決頁面緩存的問題。實際上,我們的前端界面的靜態資源,對用戶體驗感影響最大的,便是我們界面上的圖片信息,因為這是用戶最容易注意到的,也是經常在改變的,所以我們需要將界面上的圖片信息,緩存到我們的Redis數據庫中。

由于Redis存儲機制是以鍵值對的形式進行存儲的,因此,我們只需要通過后端來實現,將圖片的索引作為鍵,將圖片的路徑等信息以JSON的形式作為值緩存到Redis中,從而達到無需訪問數據庫,便可加載圖片的目的。當然,如果我們后期需要對圖片進行更新,用戶也只需要重新加載一次頁面便可更新Redis中的緩存信息。

2.2 Redis緩存技術設計流圖

該圖用于展示服務器在進行數據存取時和Redis以及數據庫之間的交互流程,如圖1所示,當服務器要獲取相應的數據時,先從Redis中獲取,如果命中,則直接返回給服務器;如果未命中,則再從數據庫中獲取,獲取到數據后,返回給服務器,并更新Redis中的內容。

2.3 Redis配置文件信息

配置使用Redis所需要的相關信息,如圖2所示:

(1)spring.redis.database:數據庫索引,在使用Redis時,由于Redis有16個內置庫,需要標明使用哪個數據庫,默認是用的是下標為0的庫,這里設置的是索引為1的庫;

(2)spring.redis.host:Redis服務器地址,由于Redis是分布式的緩存數據庫,所以需要單獨部署到一臺計算機上,這里部署到的是Linux虛擬機上,虛擬機的IP地址是:192.168.220.128,所以Redis的服務器地址是:192.168.220.128;

(3)spring.redis.port:Redis服務器連接端口,Redis的配置文件中,端口號默認配置為6379;

(4)spring.redis.password:Redis服務器連接密碼,其實Redis默認連接是沒有密碼的,這里為了保險起見在Redis的配置文件中設置連接Redis的密碼為:imooc;

(5)spring.redis.pool.maxactive:連接池最大連接數,這里可以設置同時訪問Redis的連接數量,如果設置為負值則表示沒有連接的限制;

(6)spring.redis.pool.maxwait:連接池最大阻塞等待時間,是指建立連接的最大等待時間,毫秒為單位,如果是負值,則表示永遠等待;

(7)spring.redis.pool.maxidle:連接池最大空閑連接,如果超過最大空閑連接數,會將對象丟棄;

(8)spring.redis.pool.minidle:連接池最小空閑連接,如果小于最小空閑連接數,會創建新的連接對象,以此來保持空閑連接數量大于等于最小空閑連接數;

(9)spring.redis.timeout:連接超時時間。

3 實驗結果及分析

本文通過采用RedisDesktopManager圖形化Redis管理工具來對實驗結果進行分析和研究。

如圖3所示,在db0這個數據庫中,有8個數據鍵,這8個數據鍵分別對應8種不同類別的圖片資源信息,如表1所列:

這樣,在獲取value1所對應的值時,只需要在后端通過鍵shopcategorylist_allfirstlevel,便可直接在Redis中獲取到值,而無需再次通過數據庫進行查詢操作,極大程度上改善了系統的效率。將不使用Redis的傳統關系型數據庫和采用Redis的數據庫進行對比,會發現采用Redis有以下好處,如表2所列:

4 結語

基于Redis技術的分布式數據存儲方法,可以解決因數據量逐漸增大,用戶對相同數據訪問的集中,而出現關系型數據庫管理系統負擔加重,數據庫響應效率低下,瀏覽器上響應延遲等重大問題。本文通過實驗以及對比證實了可以利用緩存技術查找數據,可以在一定程度上減少對數據庫的訪問,同時加快Web等應用的響應速度,提高用戶體驗感。

參考文獻:

[1]寧方美,賀雪梅,牟晉娟.SpringBoot集成Redis緩存技術在企業一卡通系統中的應用[J].電子技術與軟件工程,2019(24):133134.

[2]葉朋.網站訪問性能優化的研究與實現[D].哈爾濱理工大學,2020.

[3]徐茂紅,王飛,張明.基于大數據量的Redis技術應用與研究[J].信息技術與信息化,2019(11):228230.

[4]宋云奎,吳文鵬,趙磊,莫劍峰,黃俊濤.基于REDIS的分布式數據存儲方法[J].計算機產品與流通,2020(08):106.

[5]王偉晨.基于布隆過濾器算法的數據檢索誤判率研究[J].計算機產品與流通,2020(03):260261.

基金項目:遼寧科技大學大學生創新創業訓練計劃資助項目(202010146482)遼寧科技大學優秀人才項目(2018RC05)

作者簡介:秦溧(2000—),男,重慶榮昌人,本科在讀生,軟件工程專業。

*通訊作者:艾青(1980—),男,漢族,遼寧遼陽人,博士,副教授,碩士生導師,從事軟件工程、機器學習、人工智能研究。

猜你喜歡
數據庫
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
兩種新的非確定數據庫上的Top-K查詢
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
數據庫
財經(2015年3期)2015-06-09 17:41:31
數據庫
財經(2014年21期)2014-08-18 01:50:18
數據庫
財經(2014年6期)2014-03-12 08:28:19
數據庫
財經(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 国产精品jizz在线观看软件| 强奷白丝美女在线观看| 国产精品一区二区国产主播| 成年A级毛片| 乱码国产乱码精品精在线播放| AⅤ色综合久久天堂AV色综合| 久久精品人人做人人爽97| AV在线天堂进入| 欧美成人午夜影院| 亚洲精品国产精品乱码不卞| av色爱 天堂网| 日韩成人高清无码| 成人在线不卡视频| 欧美激情综合一区二区| 国产成人免费手机在线观看视频 | 五月激情婷婷综合| 亚洲三级网站| 国产h视频免费观看| 亚洲人成亚洲精品| 亚洲欧洲AV一区二区三区| 国产精品极品美女自在线网站| 国产三级视频网站| 91亚洲精品第一| 欧美自拍另类欧美综合图区| 国产乱人激情H在线观看| 欧美黄网站免费观看| 国产精品第一区| 一级毛片免费不卡在线视频| 国外欧美一区另类中文字幕| 婷婷开心中文字幕| 亚洲人成色在线观看| 国产丝袜一区二区三区视频免下载| 欧美色图久久| 国产91精品调教在线播放| 99在线视频免费| 亚洲精品黄| 中国一级特黄大片在线观看| 久久人午夜亚洲精品无码区| 亚洲天堂.com| 伊人查蕉在线观看国产精品| 午夜高清国产拍精品| 国产成人精品免费视频大全五级| 狠狠五月天中文字幕| 看看一级毛片| 日韩精品无码免费专网站| 亚洲a免费| 免费激情网址| 美女啪啪无遮挡| P尤物久久99国产综合精品| 欧美福利在线| 亚洲欧美成人影院| 国产日韩欧美在线视频免费观看| 国产91精选在线观看| 中文字幕无码av专区久久| a在线观看免费| 欧美区在线播放| 99热这里只有精品在线播放| 日日拍夜夜操| 亚洲国产精品人久久电影| 国产xxxxx免费视频| 亚洲中文久久精品无玛| 久久婷婷五月综合色一区二区| 六月婷婷综合| 制服丝袜国产精品| 欧美色图久久| 亚洲综合天堂网| 亚洲天堂网视频| 国产精品无码在线看| 在线亚洲小视频| 毛片大全免费观看| 天堂网亚洲综合在线| 午夜福利免费视频| 欧美在线网| 国产午夜一级毛片| 精品国产自在现线看久久| 亚洲香蕉久久| 毛片网站观看| 波多野结衣中文字幕一区二区 | 国产免费高清无需播放器| 欧美α片免费观看| 天堂岛国av无码免费无禁网站| 亚洲日本www|