免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
基于Redis分布式緩存實現

簡單說明下,寫此文章算是對自己近一段工作的總結,希望能對你有點幫助,同時也是自己的一點小積累。

一.為什么選擇redis

在項目中使用redis做為緩存,還沒有使用memcache,考慮因素主要有兩點:

1.redis豐富的數據結構,其hash,list,set以及功能豐富的String的支持,對于實際項目中的使用有很大的幫忙。(可參考官網redis.io)

2.redis單點的性能也非常高效(利用項目中的數據測試優(yōu)于memcache).

基于以上考慮,因此選用了redis來做為緩存應用。

二.分布式緩存的架構設計

1.架構設計

由于redis是單點,項目中需要使用,必須自己實現分布式。基本架構圖如下所示:

2.分布式實現

通過key做一致性哈希,實現key對應redis結點的分布。

一致性哈希的實現:

hash值計算:通過支持MD5與MurmurHash兩種計算方式,默認是采用MurmurHash,高效的hash計算。

一致性的實現:通過java的TreeMap來模擬環(huán)狀結構,實現均勻分布

3.client的選擇

對于jedis修改的主要是分區(qū)模塊的修改,使其支持了跟據BufferKey進行分區(qū),跟據不同的redis結點信息,可以初始化不同的ShardInfo,同時也修改了JedisPool的底層實現,使其連接pool池支持跟據key,value的構造方法,跟據不同ShardInfos,創(chuàng)建不同的jedis連接客戶端,達到分區(qū)的效果,供應用層調用

4.模塊的說明

臟數據處理模塊,處理失敗執(zhí)行的緩存操作。

屏蔽監(jiān)控模塊,對于jedis操作的異常監(jiān)控,當某結點出現異??煽刂苧edis結點的切除等操作。

整個分布式模塊通過hornetq,來切除異常redis結點。對于新結點的增加,也可以通過reload方法實現增加。(此模塊對于新增結點也可以很方便實現)

對于以上分布式架構的實現滿足了項目的需求。另外使用中對于一些比較重要用途的緩存數據可以單獨設置一些redis結點,設定特定的優(yōu)先級。另外對于緩存接口的設計,也可以跟據需求,實現基本接口與一些特殊邏輯接口。對于cas相關操作,以及一些事物操作可以通過其watch機制來實現。(參考 redis事物介紹 http://www.linuxidc.com/Linux/2012-11/74362.htm

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Redis Cluster架構優(yōu)化
負載均衡的常用算法
空穴來風的服務器架構實現高并發(fā)性能測試實戰(zhàn)方案
高并發(fā)存儲優(yōu)化篇:諸多策略,緩存為王
App后臺開發(fā)架構實踐筆記
什么是微服務!
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服