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