快取:
快取好處:
加速讀寫
降低後端負載(例如很複雜的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引用物件,而不是強...