回覆列表
-
1 # 猿話
-
2 # 驢贊
redis是記憶體型資料庫,mysql是硬碟型資料庫,需要長久儲存的就存mysql,不需要長期儲存切頻繁更新的就存redis,他們之間不需要同步!不然就是多此一舉,效能反而更差!
redis是記憶體型資料庫,mysql是硬碟型資料庫,需要長久儲存的就存mysql,不需要長期儲存切頻繁更新的就存redis,他們之間不需要同步!不然就是多此一舉,效能反而更差!
你這樣問,大概是沒明白Redis在實際工作中的使用場景。
Redis 是一個開源(BSD許可)的,記憶體中的資料結構儲存系統,它可以用作資料庫、快取和訊息中介軟體。
它的使用場景主要有以下幾個:
會話快取(Session Cache)全頁快取(FPC)佇列排行榜/計數器釋出/訂閱由以上我們可以看出,Redis在實際工作中,並不是像Mysql等關係型資料庫一樣用來儲存資料,而是在Mysql資料之前,作為一箇中間件或者是快取伺服器,來保護Mysql等關係型資料庫。
實際上,目前許多大型網際網路專案都會選用MySQL(或任何關係型資料庫) + NoSQL的組合方案。
關係型資料庫適合儲存結構化資料,如使用者的帳號、地址:這些資料通常需要做結構化查詢(嗯,好像是廢話),比如join,這時候,關係型資料庫就要勝出一籌這些資料的規模、增長的速度通常是可以預期的事務性、一致性NoSQL適合儲存非結構化資料,如文章、評論:
這些資料通常用於模糊處理,如全文搜尋、機器學習
這些資料是海量的,而且增長的速度是難以預期的,
根據資料的特點,NoSQL資料庫通常具有無限(至少接近)伸縮性
按key獲取資料效率很高,但是對join或其他結構化查詢的支援就比較差