快取使用的一些總結

2021-09-24 03:28:49 字數 767 閱讀 1301

快取:

快取好處:

加速讀寫

降低後端負載(例如很複雜的sql)

加速請求響應,對資料快取,例如redis可以達到萬次的讀寫速度

成本:資料不一致, 快取與資料庫的資料不一致(跟更新策略有關係)

**成本: 需要處理快取與資料庫層的邏輯,**增加

運維成本增加

更新策略:

lru(最近最少訪問),lfu(訪問頻率,最少訪問換出),fifo(先進先出)

超時剔除

主動更新(真實資料更新主動通知快取更新,**或者通過訊息佇列等進行通知更新)

快取穿透:

快取空物件: 快取不命中,然後回資料庫查詢, 查詢為空, 不快取,

如果攻擊者一直利用快取穿透則可能對資料庫照成很大壓力,甚至宕掉

可以對對於資料進行快取,但是會帶來記憶體空間消耗,如果是大量攻擊,則可能會大量記憶體,也可能照成宕機

布隆過濾器, 將關鍵的key進行快取,例如id, 做第一層的快取。

雪崩:快取層不能提供服務, 則資料庫層將直接處理所有請求,則所有壓力在於資料庫層,可能造成進一步宕機, 引起雪崩效應

優化:保障快取層高可用

將後端進行限流,降級

熱點key重建優化

熱點key,一般併發量非常大

重建不可能在短時間內完成

因此:減少重建次數

資料盡可能一致

互斥鎖。加鎖進行重建更新

由於作業系統擁有swap, 利用磁碟做虛擬記憶體,擴充套件記憶體,但這樣容易照成快取效能下降,因此一般禁用快取

string 使用的一些總結

需要好好的總結string的一系列的操作函式的用法 substr,find,nops string 的 操作符可以直接賦值 將乙個字串賦值給另乙個字串 替換原來字串內的內容 方便實用 front 訪問首字元 back 訪問最後的字元 data 返回指向字串首字元的指標 string 同樣擁有迭代器 ...

使用jquery的一些總結

1,使用jquery獲取文字框的值 var abcdefg text12 方式一 abcdefg 0 value 方式二 abcdefg.val 注意 abcdefg.attr value 獲取的是預設值,而不是當前文字框的值 2,使用jquery設定為唯讀 方式一 mechcoupon start...

快取使用的一些注意事項

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