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

基于REIDS緩存框架的分析與實踐

2014-12-25 05:02:58姜學軍史海洋
科技視界 2014年26期
關鍵詞:設置數據庫用戶

馬 冰 姜學軍 史海洋

(沈陽理工大學,遼寧 沈陽110159)

1 特性

Redis是一個高性能的key-value數據庫。redis的出現,很大程度補償了memcached這類key/value存儲的不足,在部分場合可以對關系數據庫起到很好的補充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客戶端,使用很方便[1]。它有以下幾個特點:

1.1 速度快

Redis使用標準C編寫實現,而且數據加載到內存上,所以讀寫速度非常快。官方提供的數據表明,普通的Linux機器上,Redis的讀寫速度分別達到81000/s和110000/s。

Redis使用單線程的IO復用模型。自己封裝了一個簡單的AeEvent事件處理框架,主要實現了epoll,kqueue和select,對于單純只有IO操作來說,單線程可以將速度優勢發揮到最大。

1.2 持久化

由于所有數據保存于內存中,所以對數據的更新將異步地保存到磁盤上。

1.3 數據結構

相比于其他內存型數據庫,Redis不只支持字符串類型,而是支持多種數據結構。目前支持5種。分別為string(字符串)、hash(hash表)、list(雙向鏈表)、set(無序集合)、zset(有序集合)。

1.4 自動操作

Redis對不同數據類型操作時自動的,因此設置或增加key,從一個集合中增加或刪除一個元素都能安全的操作。

1.5 支持多種語言

Redis支持多種語言,諸如Ruby,Python,PHP,ErLang,Perl,Lua,Java,Scala等。

1.6 主-從復制

Redis支持簡單而快速的主從復制。官方提供數據,Slave在21秒內即完成了Amazon網站10Gkey Set的復制。

1.7 Sharding

目前只支持PHP,Ruby,Scala語言的Sharding功能。

2 適應場景

1)小數據量,高速讀寫訪問。

2)大數據量,有明顯熱點數據。

3)大數據量,無熱點數據。

4)所有數據in-memory。

3 源碼分析

4 比較MySQL與Redis存取效率比較

(代碼都是用java語言完成,數據庫操作采用MyBatis框架,Redis操作使用Spring提供的方法)

4.1 存儲性能比較

4.2 查詢性能比較

4.3 最后結果與分析

表1 執行五次來進行比較兩者的時間(毫秒)

可見,redis的存取性能要極大程度優于數據庫,所以在應用中合適的使用redis,能極大提升產品性能。

Redis存取速度快的原因分析如下:

4.3.1 純內存操作

Redis所有數據存儲于內存中,內存中的操作速度比磁盤快的多。

4.3.2 Redis的存取底層使用異步非阻塞IO

系統I/O可分為阻塞型,非阻塞同步型以及非阻塞異步型。

阻塞型I/O意味著控制權只到調用操作結束了才會回到調用者手里.結果調用者被阻塞了,這段時間了做不了任何其它事情。

非阻塞同步是會立即返回控制權給調用者的。調用者不需要等等,它從調用的函數獲取兩種結果:要么此次調用成功進行了;要么系統返回錯誤標識告訴調用者當前資源不可用,你再等等或者再試度看吧。

在非阻塞異步調用中,稍有不同。調用函數在立即返回時,還告訴調用者,這次請求已經開始了。系統會使用另外的資源或者線程來完成這次調用操作,并在完成的時候知會調用者(比如通過回調函數)[2]。

In a non-blocking asynchronous call,the calling function returns control to the caller immediately,reporting that the requested action was started.The calling system will execute the caller’s request using additional system resources/threads and will notify the caller(by callback for example),when the result is ready for processing。[3]

在以上三種IO形式中,非阻塞異步是性能最高、伸縮性最好的。

4.3.3 采用Epoll接口實現IO復用

與epoll模式相比較,有select模式,select模式是采用輪詢的方式,來檢測所有socket的狀態,當有很大的socket集時,即使有小部分是活躍的,內核也需要把整個集合輪詢才能知道所有socket的狀態變化,而epoll模式是在創建時即對需要關注的socket注冊事件,當某一個監聽的socket有狀態變化,就將其保存到一個內部數組中,當應用層需要檢測時直接返回該數組,不需要對所有socket逐一檢查,所以epoll模式的性能優于select模式。

5 Redis實踐

5.1 有存活時間的數據存于redis中

需要設置數據的一定存活時間。例如找回密碼功能,用戶需要填寫郵箱,然后發送一個連接到用戶郵箱中,該連接是有時間限制,半小時后即失效。此時就可以利用redis存儲數據可以設置有效時間的功能。并且不需要存儲于數據庫,讀取redis的效率更高。

讀取時直接在redis中查詢key為"redis.global.forgetPass",如果有值則說明未超時,為空則說明連接失效。

5.2 系統設置(基本不會變化數據存于redis中)

一些全局的系統設置,基本上都是在第一次啟動應用的時候設置,以后就不會再修改的數據,可以存于redis中,設置不自動失效。

5.3 業務數據

所有業務數據,可以通過數據庫主鍵ID當成key或者一些層級關系生成redis存儲的key,將整個數據對象存儲于redis,極大的減少數據庫查詢次數,提高應用性能。

例如:數據的層級為 代理商→租戶→用戶 則用戶可以在redis中存儲的數據為

Key:redis.user.partnerId.customerId.userId

Value:user的數據對象

e.g.redis.user.1.33.21 redis.user.3.42.13。

[1]百度百科.Redis[EB/OL].http://baike.baidu.com/view/4595959.htm,2014.

[2]veryDemo.兩種高性能I/O設計模式(Reactor/Proactor)的比較[Z].2005.

[3]Artima developer.Comparing Two High-Performance I/ODesign Patterns[Z].2005.

猜你喜歡
設置數據庫用戶
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
主站蜘蛛池模板: 色精品视频| 91av成人日本不卡三区| 国产情精品嫩草影院88av| 国产特级毛片aaaaaaa高清| 精品视频一区二区三区在线播| 性欧美精品xxxx| 伊人久综合| 欧美爱爱网| 91欧美亚洲国产五月天| 国产日韩精品欧美一区灰| 亚洲精品国产综合99久久夜夜嗨| 福利在线不卡| 国产网友愉拍精品视频| 一级毛片免费高清视频| 亚洲精品制服丝袜二区| 亚洲第一极品精品无码| 免费看黄片一区二区三区| 91网红精品在线观看| 国产激情在线视频| 孕妇高潮太爽了在线观看免费| 任我操在线视频| 国产视频欧美| 国产久草视频| 在线亚洲精品福利网址导航| 久久一色本道亚洲| 久久综合亚洲鲁鲁九月天| 中国丰满人妻无码束缚啪啪| 久久久久亚洲AV成人人电影软件| 国产精品19p| 亚洲性影院| 91在线免费公开视频| 国产色图在线观看| 国产黑人在线| a毛片在线免费观看| 蜜桃视频一区二区三区| 制服丝袜在线视频香蕉| 色呦呦手机在线精品| 亚洲日韩高清无码| 国产精品亚洲va在线观看| 欧美成在线视频| 精品少妇人妻无码久久| 欧美另类一区| 亚洲一区毛片| 日本免费高清一区| 欧洲高清无码在线| 国产剧情一区二区| 国产欧美专区在线观看| 欧美一区二区福利视频| 亚洲成在人线av品善网好看| 91色在线视频| 国产aaaaa一级毛片| 国产免费福利网站| 亚洲天堂啪啪| 99精品国产电影| 日本国产一区在线观看| 国产一在线观看| 亚洲一本大道在线| 免费可以看的无遮挡av无码| 亚洲欧洲一区二区三区| 国产亚洲欧美日韩在线观看一区二区| 特级精品毛片免费观看| 欧美va亚洲va香蕉在线| 国产福利小视频在线播放观看| 男女男免费视频网站国产| 欧美成人精品欧美一级乱黄| 国产乱人免费视频| 中文字幕日韩欧美| 日韩欧美91| 99re经典视频在线| 亚洲国产亚综合在线区| 亚洲精品无码不卡在线播放| 视频二区欧美| 欧美亚洲一二三区| 久久永久免费人妻精品| 青青操国产| 亚洲天堂网2014| 国产99在线| 亚洲福利一区二区三区| 51国产偷自视频区视频手机观看| 国产黄色免费看| 制服丝袜国产精品| hezyo加勒比一区二区三区|