您好,登錄后才能下訂單哦!
Redis從入門到進階
今天跟大家交流一下 Redis的一些學習材料,希望通過今天的分享,能夠帶領大家簡單入門Redis。
首先介紹一下什么是 Redis? Redis全稱是Remote Dictionary Server,是一種Key-Value類型的開源緩存中間件。可用于數據庫前端緩存、事件發布或訂閱、高速隊列等多種場景。提供字符串(String)、哈希(Hash)、列表(List)、集合結構(Set、Sorted Set)、流(Stream)等數據類型的直接存取。同時提供了基于內存的讀取的方式,可以把內存的數據同步到磁盤上。Redis是當前最流行的內存數據庫,在AWS最大的公有云廠商,MySQL是數據庫排名第一的,而排名第二的是Redis。數據庫還有一個流行的排行榜叫DBEngines,DBEngines里面Redis在K-V 存儲里面排名第一,在所有數據庫里面排名第七。除此之外,Redis其實不僅局限在K-V領域,下圖是在RedisConf最新發布的一張圖:
在這張圖中可以看得出, Redis除了可以當K-V數據庫之外,它還可以當做文本搜索,相當于Elasticsearch;可以當做圖數據庫;同時它可以當文檔數據庫,開源的有MongoDB;它可以在消息領域有所建樹,相當于卡夫卡,它可有提供streams類型的能力。此外在2019年的Redisconf上,Redis作者演示了一個實時聊天demo,這表明Redis可以把AI能力帶進來,可以做機器學習的。大大擴展了Redis的疆界,Redis是源于K-V,但是遠遠超于K-V。
接下來介紹一下哪些用戶會使用到 Redis。基本上來說所有的大、中、小型分布式系統應用都會使用到Redis。因為緩存是分布式系統中的重要的組件,主要解決高并發、大數據場景之下熱點數據的訪問的性能問題。提供高性能的數據快速訪問的能力。
接下來我會舉幾個生活中的案例給大家。首先是微信搶紅包的例子,微信搶紅包是一個很高頻的操作。大家想一下春晚的時候,有幾十億的華人同時點擊搶紅包操作,這會帶來非常大的流量。如果這個流量直接壓到數據庫上,那基本上數據庫就直接崩掉了,毫無疑問。但如果在 MySQL前面加設一個Redis,那么可以把MySQL中高頻的、99%以上的流量卸載到Redis上。那我們只需要應用的這兩步的操作:首先應用先到Redis里面去查取這個紅包是不是還有還有金額?同時確認人數是不是達到了上限。如果條件滿足的情況之下,再對數據庫進行讀取的二次的確認操作。這樣它就只會把有效的流量透傳到數據庫上,而把大部分的數據攔截在Redis這一側,從而達到了保護MySQL數據庫的作用。
還有一個案例,就是我們在華為商城銷售華為手機的時候遇到的購物車的案例。購物車到底選擇用什么數據庫比較好,我們最早的時候使用的是 MySQL,因為畢竟他是跟客戶的數據相關。但在實際的使用過程中,我們發現購物車的邏輯其實也是比較多的,因為它涉及到贈品,它涉及到物品的關聯打折,所以它涉及到比較復雜的SQL操作。在這種情況之下MySQL的操作很容易有性能瓶頸問題。曾經我們有黑客嘗試考驗我們的購物車能力,就只是把購物車的數量做自動增減,一直并發的刷,就可以把那個數據庫給搞壞掉了。我們在優化的過程中就發現了這個性能瓶頸問題,把MySQL數據庫卸載成為Redis數據庫。使用Redis之后,有幾個效果,一是它可以把非關鍵流量給卸載下來。那另外一方面,就是我們利用到Redis高性能的能力,能夠把針對是高頻的一些操作,變成一個簡單的一個K-V操作,那對整個系統的效率的提升其實是有很大的幫助的。除此之外,Redis在很多產品中都有應用,比如說在小視頻領域中,它可以緩存一些用戶的關系;比如游戲中的積分排行榜,可以使用到Redis的排行的能力,很快就可以把屬于Top級的用戶顯示出來;比如在訂票系統里面,可以用Redis來緩存一些用戶的信息。通過這種方式,Redis基本上不帶行業屬性的,可以進入到任何一個分布式系統里面,廣泛應用。
以上簡單介紹了 Redis的發展概況和使用場景,接下來還有Redis數據結構、實例參數配置、備份恢復與遷移等操作的講解和演示,想要學習嗎,立即報名華為云學院( https://edu.huaweicloud.com/ )《 Redis超速入門》課程,一起用七天的時間通過實戰環境快速掌握Redis。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。