1、 Redis簡介
redis是Nosql資料庫中使用較廣泛的非關係記憶體資料庫,redis內部是一個key-value儲存系統。它支援儲存的value類型相對更多,包括string(字串)、list(鍊錶)、set(集合)、zset(sorted set –有序集合)和hash(哈希類型,類似於Java中的map) 。 Redis基於記憶體運行並支援持久化的NoSQL資料庫,是目前最熱門的NoSql資料庫之一,也被人們稱為資料結構伺服器。
2、 網路時代背景下大機遇,什麼要用Nosql?
1) 當資料量的總大小一個機器放不下時。
2) 資料索引一個機器的內存放不下時。
3) 訪問量(讀寫混合)一個實例放不下時。
單機時代模型
#如果每次儲存成千上萬條數據,這樣就會導致MySQL的效能很差,儲存以及讀取速度很慢,然後就演變成快取mysql 垂直分割的方式。
Cache作為中間快取
將所有的資料先儲存到快取中,然後再存入mysql中,減小資料庫壓力,提高效率。但是當資料再次增加到又一個量級,上面的方式也無法滿足需求,由於資料庫的寫入壓力增加,Memcached只能緩解資料庫的讀取壓力。
讀寫集中在一個資料庫上讓資料庫不堪重負,大部分網站開始使用主從複製技術來達到讀寫分離,以提高讀寫效能和讀庫的可擴展性。 Mysql的master-slave模式變成這個時候的網站標配了。
主從分離模式
在redis的高速緩存,MySQL的主從複製,讀寫分離的基礎之上,此時MySQL主庫的寫壓力開始出現瓶頸,而資料量的持續激增,由於MyISAM使用表鎖,在高並發下會出現嚴重的鎖問題,大量的高並發MySQL應用開始使用InnoDB引擎代替MyISAM。
分錶分庫模式
將變化小的、業務相關的放在一個資料庫,變化多的,不相關的數據放在一個資料庫。
3、 nosql資料庫的優點
1)易擴充
這些類型的資料儲存不需要固定的模式,無需多餘的操作就可以進行橫向的擴展。相對於關係型資料庫可以減少表格和欄位特別多的情況。也無型之間在架構的層面上帶來了可擴展的能力
2)大數據量提高性能
3)多樣且靈活的資料模型
在nosql中不僅可以儲存String,hash,set、Zset等資料類型,還可以保存javaBean以及多種複雜的資料類型。
4、 NoSql的應用
1) 大數據時代淘寶、微信、以及微博等都廣泛的使用了redis資料庫,將一些固定不變的資料例如學校,區域等固定的資訊保存在關係型資料庫中。然後對於經常變化的數據例如淘寶每個節日都會有比較熱門的搜索顯示在搜索框,當節日過去關鍵字自動刪除,為了便於管理,可以將這些數據保存在redis數據庫中,並設置過期時間,到達時間就自動刪除。
2)為了緩和資料庫壓力,微博首先將發送的微博保存到redis資料庫,自己可以立即查看到,然後將記憶體中的資料同步到關係型資料庫。
以上內容僅供參考!
推薦影片教學:redis教學
#以上是php為什麼要用redis的詳細內容。更多資訊請關注PHP中文網其他相關文章!