數據多的時候為什麼要使用redis而不用mysql?

讀寫異常快

Redis非常快,每秒可執行大約10萬次的讀寫速度。

豐富的數據類型

Redis支持豐富的數據類型,有二進制字符串、列表、集合、排序集和散列等等。這使得Redis很容易被用來解決各種問題,因為我們知道哪些問題可以更好使用地哪些數據類型來處理解決。

原子性

Redis的所有操作都是原子操作,這確保如果兩個客戶端併發訪問,Redis服務器能接收更新的值。

豐富實用工具

Redis是一個多實用工具,可用於多種用例,如:緩存,消息隊列(發佈/訂閱),通知,key值過期等等。

支持異機主從複製

Redis支持主從複製的配置,它可以實現主服務器的完全拷貝。

以上為開發者青睞Redis的主要幾個可取之處。但是,請注意實際生產環境中企業都是結合Redis和MySQL的特定進行不同應用場景的取捨。如緩存——熱數據、計數器、消息隊列(與ActiveMQ,RocketMQ等工具類似)、位操作(大數據處理)、分佈式鎖與單線程機制、最新列表(如新聞列表頁面最新的新聞列表)以及排行榜等等可以看見Redis大顯身手的場景。可是對於嚴謹的數據準確度和複雜的關係型應用MySQL等關係型數據庫依然不可替。

更多技術瞭解,關注小伍


小伍科技

首先,不是選用redis或者mysql是根據數據多少來定的,這兩個數據庫的用法區別並不是在於儲存數據的多少。

其次,我們來看下這兩個數據庫,mysql是一種關係數據庫管理系統,是持久化儲存,它將數據保存在不同的表中。而redis是一個高性能的key-value數據庫,它並不存在關係型數據庫。redis的數據是緩存並留駐在內存中運行的,而mysql的是放在磁盤中的,單就這點來說,你還會覺得這個問題問得正確嗎?mysql是關係型數據庫,它的功能比較強大,但是當cpu訪問數據時,它可不會先去訪問磁盤,而是先去訪問內存當前正在運行的那部分數據,這樣以來,redis的速度就要比mysql快。一般中小型網站的開發選擇用mysql,因為mysq體積小、速度快、總體擁有成本低,還有一個特殊的地方,就是源代碼公開。但是對於大型互聯網公司來說,mysq就很難滿足他們的需求,因為特定的系統絕大部分的檢索在很多時候都是基於主鍵的查詢,這樣一來,如果選用關係型數據庫的話,那麼將會使得效率比較低下。一般web每次只訪問redis,然後在沒有找到數據的情況下,才去訪問mysql,因此,選擇key-value數據庫就是無可厚非的。

最後,我覺得,你在選擇時應該是要看情況是怎樣的,哪種更符合需求,而不是單看數據的大小。


紅塵小書童

這個命題首先就有問題,redis是key-value型的內存數據庫,而mysql是關係型數據庫。兩者使用場景不同,前者主要用於實時響應要求高的場景,響應時間在毫秒級,通常作為熱點數據的緩存使用。後者通常用於結構化數據的持久化和傳統的事務處理場景。兩者使用場景主要是根據數據類型、響應時間、事務類型等方面考慮,數據量並不是選擇哪個的數據庫的決定因素。


初沏的茶

這個問題的標題是有錯誤的,二者應用的場景不同功能不同 作用不同。

redis 並不是用來解決數據多的問題的。redis 代替不了 SQL,二者間是合作關係,經常是一同使用。

redis 適用於經常調用,又經常變化的臨時數據。或者恆久不變的,但要經常調用的數據。數據量通常不是特別大,存於內存中,數據成本較高,但效率高,不佔用磁盤 lO。

而MYSQL是用於複雜查詢關係與條件的環境,數據量較大。


365娛樂

首先就題目來說,這個說法是個偽命題,沒有任何理論依據和實踐支持。

大家都知道mysql和redis的應用場景不一樣,mysql是關係型數據庫,redis是key-value的內存數據庫。mysql將數據持久化到磁盤,而redis雖然也支持持久化,但主要應用場景仍然是使用內存來實現緩存的目的,所以理論上mysql可以有效管理的數據量比redis多得多。

redis相比mysql的優勢在於直接使用內存讀寫數據,速度比mysql快,但是內存容量有限,所以大多數應用使用redis來緩存熱點數據,達到提升應用性能的目的,而結構化數據仍然使用關係型數據庫來存儲。

因此,訪問頻率較高的熱點數據使用redis來進行緩存才是最普遍的互聯網應用實踐。


java老菜鳥

Redis是內存數據庫,數據保存在內存中,速度快。

Mysql是關係型數據庫,數據存儲在磁盤中,數據訪問也就慢。

redis適合放一些頻繁使用,比較熱的數據,因為是放在內存中,讀寫速度都非常快 。

目前大多數公司的存儲都是mysql + redis,mysql作為主存儲,redis作為輔助存儲被用作緩存,加快訪問讀取的速度,提高性能


語言密碼

不能籠統的這麼說,這兩個東西有完全不同的應用場景。也要看數據多到什麼程度。

redis是一個內存數據結構的服務,它將數據存儲在內存中,從而實現了非常好的吞吐量和性能。它有提供了很豐富的數據結構,特別適合社交類業務的系統。但是內存數據庫要求服務器的內存足夠才行,存儲的數據量越大消耗的內存也就越大,如果內存不夠就會導致操作系統進行內存到磁盤的交換結構性能急劇下降。新浪微博的數據存儲就是用的redis來實現的。

mysql是一個傳統的數據庫系統,因為它的架構非常的靈活,可以集成很多不同方式的存儲。mysql因為大部分都是磁盤操作自然性能比不上redis,但是支持事務等功能。適合於各種業務系統,對於海量的數據存儲並沒有問題。Facebook用的是MySQL的集群。

數據量大,有多大,業務是什麼樣,不能一概而論。用的好一樣可以解決大部分的問題,新浪微博的冷數據就是用MySQL。


平凡的上班族

數據多而且調用頻繁的話,用mysql存儲的話數據庫連接被一直佔用,其它的數據請求就進來了,導致連接超時,數據量大的話,數據庫直接死機了。只能重啟才能解決問題。



這個時候如果把數據請求量大的數據放在redis中的話就可以分擔一下mysql的壓力,從而提高系統的性能,解決請求併發問題。


分享到:


相關文章: