爲何須要緩存淘汰?你須要緩存30G的數據,可是Redis自己只能使用10G的內存,那你就得作個取捨了,畢竟魚與熊掌不可兼得。爲了利益最大化確定要保留最重要的10個G。redis
Redis自己提供了6中緩存淘汰策略,如下屬性表示容許使用的最大內存算法
1 |
server.maxmemory |
當使用的內存超過限制內存時,Redis會根據配置的如下6中淘汰策略選擇數據淘汰數據庫
1 2 3 4 |
#指定數據淘汰算法 maxmemory-policy allkeys-lru #LRU和最小TTL算法的樣本個數 maxmemory-samples 5 |
大量的請求瞬時涌入系統,而這個數據在Redis中不存在,從而全部的請求都落到了數據庫上從而把數據庫打死。形成這種狀況的緣由以下:緩存
解決方案:併發
緩存擊穿,就是常說的熱點key問題,當一個正有很是巨大的訪問量訪問的key 在失效的瞬間,大量的請求擊穿了緩存,直接落到了數據庫上,而後全部從數據獲取到數據的線程又都併發的想要把數據緩存到redis中。dom
解決方案:分佈式
因爲Redis是基於內存的應用,能夠很容易作到高性能、高併發從而起到保護數據庫的做用。若是緩存意外掛了、全部的請求落到了數據上就造成了緩存雪崩。高併發
解決方案:性能
當一個數據須要更新時由於不可能作到同時更新數據庫和緩存、那麼此時讀取數據的時候就必定會發生數據不一致問題,而數據不一致問題在金融交易領域的系統中是確定不容許的。spa
解決方案: