當前位置:
首頁 > 最新 > Redis緩存技術應用

Redis緩存技術應用

什麼是Redis?

Redis 是一個開源(BSD許可)的,基於內存的,多數據結構存儲系統。可以用作資料庫、緩存和消息中間件。 支持多種類型的數據結構,如 字元串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 與範圍查詢, bitmaps, hyperloglogs 和 地理空間(geospatial) 索引半徑查詢。

緩存些什麼?

在使用redis的時候,經常會遇到緩存哪些數據的問題。通常情況下我們會緩存熱點數據和基礎數據。

基礎數據好理解,可以在系統新增某信息的時候把一些不常更改的配置信息丟到Redis中,減少每次對基礎數據的讀取。比如商家的一些支付配置信息、用戶的基本資料;這類數據量小的情況下,可以設置久一點的過期時間。

熱點數據是什麼呢?它分兩種,一種是快照式的,我們常接觸的熱點數據比如top 10條最新資訊。快照式的數據有一個特點,一條數據進來後它保留不了多久就被別的數據替換掉了,很顯然它需要有人來維護它;另一種是消亡式的,比如當天正正在交易的訂單數據;消亡式的數據它不會被人替換掉,只需要短時間內存活一下即可,用完就讓它過期,自然消亡。

消亡式的不過多介紹,這裡介紹一下快照式,舉個例子,一個新聞主界面,它需要經常更新,但是對於用戶來說最新的內容延遲5到10秒又是可以接受的,它不是實時交易數據,這時用快照數據最合適,由一個固定發布程序來維護它,一旦有新的更新了就觸發或者固定每隔5秒生成一次快照,這個首頁的並發量可以有大的提升,不需要依賴DB層。

緩存注意事項

使用緩存的時候,是要考慮DB承載量的,比如說緩存的一種極端用法,原有頁面並發數500,增加緩存後並發數提到3000,然後覺得很爽就讓系統這樣跑著。這其實是一種錯誤用法,很危險。為什麼說危險呢?風險在於要考慮redis出問題的時候,流量倒灌的問題,這時候DB能不能承受?如果不能承受,這種架構就有問題。這時有人就會說了,那我保證Redis不掛,我用分散式集群。如果能保證那也可以,如果做不到redis完全可靠,請做好限流和DB承載量。

Redis本身很可靠,但我們也要認為它是不可靠的,在代碼層,任何時候從緩存中取一條數據取不到的時候,都需要從DB層去拿一次,因為redis的數據我們要默認接受隨時被丟棄的事實。因為每個key我們都要設置過期時間,如果不設置過期時間,假如一天內存用完了,redis不知道應該清理誰的數據,系統就會假死。

下一篇預告:redis在秒殺場景的應用

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

小腿粗的男生到底該如何穿褲子呢?
唯愛花藝,美爆你的生活圈

TAG:全球大搜羅 |