快取使用的一些注意事項

2022-02-05 09:46:11 字數 1347 閱讀 1524

最近在專案中使用了很多快取技術,包括區域性快取,遠端集中式快取,分布式快取,在快取的使用中也發現一些問題,整體總結如下:

1 使用區域性快取要注意記憶體溢位

一般區域性快取使用map來實現,很容易無限制的往map中填入資料,導致記憶體溢位。最好的方法就是使用softreference引用物件,而不是強引用物件

2 在分布式環境下使用區域性快取,如果快取是同一類資料,比如同一張表的資料庫配置,則需要考慮乙個同步措施,保證各個集群之間的資料是在一致的。

一般情況下,需要每台集群機器定時重新整理快取,在重新整理快取的時候,注意要對快取加鎖。這種情況下,需要對某一時刻,個臺機器之間的快取狀態是不一致的。

3 遠端集中快取需要考慮遠端呼叫開銷和快取物件的序列化和反序列化開銷。

遠端快取就需要通過遠端呼叫快取伺服器來實現,遠端呼叫開銷比較大,所以快取物件設定的要合理,避免獲取乙個完成物件的時候時候多次訪問快取資訊。又由於序列化和反序列化的開銷,快取物件要盡可能的小。

4 遠端集中式快取需要考慮單點問題。如果快取伺服器宕機,所有的對快取訪問都失效。需要考慮備份的快取伺服器。

5 分布式快取需要考慮快取物件的分配演算法,分配演算法很重要,需要快取請求能夠平均的分配到各台快取伺服器。尤其當快取機器增加一台或者減少一台的時候,分配演算法需要考慮雜湊一致性的問題。

6 分布式快取也會存在某寫快取伺服器宕掉問題,會影響1/n的快取訪問。

最近在專案中使用了很多快取技術,包括區域性快取,遠端集中式快取,分布式快取,在快取的使用中也發現一些問題,整體總結如下:

1 使用區域性快取要注意記憶體溢位

一般區域性快取使用map來實現,很容易無限制的往map中填入資料,導致記憶體溢位。最好的方法就是使用softreference引用物件,而不是強引用物件

2 在分布式環境下使用區域性快取,如果快取是同一類資料,比如同一張表的資料庫配置,則需要考慮乙個同步措施,保證各個集群之間的資料是在一致的。

一般情況下,需要每台集群機器定時重新整理快取,在重新整理快取的時候,注意要對快取加鎖。這種情況下,需要對某一時刻,個臺機器之間的快取狀態是不一致的。

3 遠端集中快取需要考慮遠端呼叫開銷和快取物件的序列化和反序列化開銷。

遠端快取就需要通過遠端呼叫快取伺服器來實現,遠端呼叫開銷比較大,所以快取物件設定的要合理,避免獲取乙個完成物件的時候時候多次訪問快取資訊。又由於序列化和反序列化的開銷,快取物件要盡可能的小。

4 遠端集中式快取需要考慮單點問題。如果快取伺服器宕機,所有的對快取訪問都失效。需要考慮備份的快取伺服器。

5 分布式快取需要考慮快取物件的分配演算法,分配演算法很重要,需要快取請求能夠平均的分配到各台快取伺服器。尤其當快取機器增加一台或者減少一台的時候,分配演算法需要考慮雜湊一致性的問題。

6 分布式快取也會存在某寫快取伺服器宕掉問題,會影響1/n的快取訪問。

快取使用的一些注意事項

最近在專案中使用了很多快取技術,包括區域性快取,遠端集中式快取,分布式快取,在快取的使用中也發現一些問題,整體總結如下 1 使用區域性快取要注意記憶體溢位 一般區域性快取使用map來實現,很容易無限制的往map中填入資料,導致記憶體溢位。最好的方法就是使用softreference引用物件,而不是強...

快取使用的一些注意事項

最近在專案中使用了很多快取技術,包括區域性快取,遠端集中式快取,分布式快取,在快取的使用中也發現一些問題,整體總結如下 1 使用區域性快取要注意記憶體溢位 一般區域性快取使用map來實現,很容易無限制的往map中填入資料,導致記憶體溢位。最好的方法就是使用softreference引用物件,而不是強...

快取使用的一些注意事項

最近在專案中使用了很多快取技術,包括區域性快取,遠端集中式快取,分布式快取,在快取的使用中也發現一些問題,整體總結如下 1 使用區域性快取要注意記憶體溢位 一般區域性快取使用map來實現,很容易無限制的往map中填入資料,導致記憶體溢位。最好的方法就是使用softreference引用物件,而不是強...