解析Redis的緩存類型
HashMap/ConcurrentHashMap
HashMap 是一種基于哈希表的集合類,它提供了快速的插入、查找和刪除操作。是很多程序員接觸的第一種緩存 , 因為現(xiàn)實業(yè)務場景里,我們可能需要給緩存添加緩存統(tǒng)計、過期失效、淘汰策略等功能,HashMap 的功能就顯得弱。
Broker 與 Name Server 集群中的所有節(jié)點建立長連接,定時每隔 30 秒注冊 主題的路由信息到所有 Name Server。
Name Server 集群的作用就是注冊中心,注冊中心會保存路由信息(主題的讀寫隊列數、操作權限等),路由信息就是保存在 HashMap 中 。
LinkedHashMap 緩存
LinkedHashMap 是 HashMap 的子類, 支持兩種順序插入順序 、 訪問順序。
TreeMap緩存
TreeMap 是基于紅黑樹的有序 Map,它可以按照鍵的順序進行遍歷。 在一致性哈希中可以用作節(jié)點/虛擬節(jié)點的存儲結構,用來維護節(jié)點在哈希環(huán)上的位置和鍵的有序性。
ByteBuffer 緩存
ByteBuffer 是字節(jié)緩沖區(qū),主要用于用戶讀取和緩存字節(jié)數據,在網絡編程里,經常需要分配內存,在高并發(fā)場景下,性能壓力比較大。Cobar 抽象了一個 NIOProcessor 類用來處理網絡請求,每個處理器初始化的時候都會創(chuàng)建一個緩沖池 BufferPool 。
以上四種緩存:HashMap/ConcurrentHashMap 經常用于配置緩存,對于 HashMap 來講,HashMap + 讀寫鎖 + 定時任務更新是常用的模式。LinkedHashMap 經常被用于創(chuàng)建最近最少使用緩存 LruCache ,使用責任鏈+ 裝飾器的設計模式,內置 LruCache 的實現(xiàn)就是使用 LinkedHashMap 。TreeMap 是一種基于紅黑樹的有序 Map 。TreeMap 在一致性哈希中可以用作節(jié)點/虛擬節(jié)點的存儲結構。ByteBuffer 主要用于用戶讀取和緩存字節(jié)數據,多用于網絡編程、文件 IO 處理等。以上希望大家在使用過程中注意!
到此這篇關于解析Redis的緩存類型的文章就介紹到這了,更多相關Redis 緩存 內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
淺談Redis在分布式系統(tǒng)中的協(xié)調性運用
這篇文章主要介紹了Redis在分布式系統(tǒng)中的協(xié)調性運用,講解了Redis在進程和線程的調度上以及消息隊列中的作用,需要的朋友可以參考下2016-03-03