Redis的五種常用的資料型別分別是:String、Hash、List、Set、Sorted set
1.Counting(計數)
2.展示最近、最熱、點擊率最高、活躍度最高等等條件的top list
3.用戶最近訪問記錄也是redis list的很好應用場景
4.透過list的lpop及lpush介面進行佇列的寫入和消費
5.Redis 的Lua的功能擴充實際上為Redis帶來了更多的應用場景,你可以編寫若干command組合作為一個小型的非阻塞事務或更新邏輯
6.Redis提供的主從資料同步功能,其實是對cache的一個強有力功能擴展
小結
如此多的應用無非離不開Redis的所有特性
Redis是一個開源(KEY-VALUE鍵值對) ,記憶體儲存的資料結構伺服器,可用作資料庫,快取和訊息佇列代理。採用單一進程單執行緒模型,並行能力強大,是當前網路架構中主流的分散式快取工具。
1.架構設計
由於redis是單點,項目中需要使用,必須自行實作分散式。基本架構圖如下所示:
2.分散式實作
透過key做一致性哈希,實作key對應redis結點的分佈。
一致性雜湊的實作:
hash值計算:透過支援MD5與MurmurHash兩種計算方式,預設是採用MurmurHash,高效率的hash計算。
一致性的實作:透過java的TreeMap來模擬環狀結構,實現均勻分佈
3.client的選擇
對於jedis修改的主要是分區模組的修改,使其支援了跟據BufferKey進行分區,跟據不同的redis結點信息,可以初始化不同的ShardInfo,同時也修改了JedisPool的底層實現,使其連接pool池支持跟據key,value的建構方法,跟據不同ShardInfos,建立不同的jedis連線客戶端,達到分割區的效果,供應用層呼叫
4.模組的說明
髒資料處理模組,處理失敗執行的快取操作。
屏蔽監控模組,對於jedis操作的異常監控,當某結點出現異常可控制redis結點的切除等操作。
整個分散式模組透過hornetq,來切除異常redis結點。對於新結點的增加,也可以透過reload方法實現增加。 (此模組對於新增結點也可以很方便實現)
以上是Java高端的技術有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!