、
首先我們先介紹些redis的基本概念,redis是Nosql數據庫,是一個key-value存儲系統。雖然redis是key-value的存儲系統,但是redis支持的value存儲類型是非常的多,比如字符串、鏈表、集合、有序集合和哈希。
那么為什么要使用類似redis這樣的Nosql數據庫呢?
1) 當數據量的總大小一個機器放不下時;
2) 數據索引一個機器的內存放不下時;
3) 訪問量(讀寫混合)一個實例放不下時。
單機時代,存儲只用一臺機器裝mysql,如果每次存儲成千上萬條數據,這樣很會導致mysql的性能很差,存儲以及讀取速度很慢,然后就演變成緩存+mysql+垂直拆分的方式。
Cache作為中間緩存時代,將所有的數據先保存到緩存中,然后再存入mysql中,減小數據庫壓力,提高效率。
但是當數據再次增加到又一個量級,上面的方式也不能滿足需求,由于數據庫的寫入壓力增加,緩存只能緩解數據庫的讀取壓力。讀寫集中在一個數據庫上讓數據庫不堪重負,大部分網站開始使用主從復制技術來達到讀寫分離,以提高讀寫性能和讀庫的可擴展性。Mysql的master-slave模式成為這個時候的網站標配了。
主從分離模式時代,在redis的高速緩存,MySQL的主從復制,讀寫分離的基礎之上,這時MySQL主庫的寫壓力開始出現瓶頸,而數據量的持續猛增,由于MyISAM使用表鎖,在高并發下會出現嚴重的鎖問題,大量的高并發MySQL應用開始使用InnoDB引擎代替MyISAM。
Nosql數據庫的優勢
1)易擴展
這些類型的數據存儲不需要固定的模式,無需多余的操作就可以進行橫向的擴展。相對于關系型數據庫可以減少表和字段特別多的情況。也無型之間在架構的層面上帶來了可擴展的能力
2)大數據量提高性能
3)多樣靈活的數據模型
更多Redis相關技術文章,請訪問Redis教程欄目進行學習!