Redis是否可以存圖片、視頻?

  • 2019 年 10 月 6 日
  • 筆記

一、Redis是否可以用於存儲圖片、視頻?

前幾天看到某大型家電工廠的工業互聯網系統架構圖,發現用MongoDB存儲圖片及視頻。那Redis同樣也是Json類型的遠程數據字典服務器,也可以用於存儲圖片、視頻。實際Redis可以用512MB的空間存儲用於存儲字符串型的數據。

雖然技術上可以這麼做,但Redis原本就是內存型數據庫,用於存儲圖片、視頻是非常不划算的。建議多利用HDFS、NAS、對象存儲等分佈式的雲存儲系統。

二、Redis如何存儲真實對象的名稱?

我一直有個好奇,Redis採用key區分不同的數據,面臨複雜的網頁、程序,如何進行數據的編號。

Redis有默認的數據編碼規則。

user:1:friend user是class名,1是對象名,friend是對象的屬性。通過該方式,向Redis中存放、讀取數據,將使key具有可讀性。

三、Redis是否支持主從複製、數據分片?

像MongoDB一樣,後起之秀,一般對複製、分片是原生支持,比起Mysql等關係數據庫系統的複雜配置,Redis已經可以原生支持這兩個功能,而且配置非常簡單。

像下圖,A數據的數據自動同步到B、C,向B寫入的數據自動同步到D、E。我們可以在A數據庫中實現寫操作,在B、C數據庫進行讀操作。

為提高效率,在B、C中啟動持久化數據存儲,而在A仍使用內存數據庫。當主用服務器A down機後,自動從B、C中恢複數據。

四、對主、備數據庫的自動切換,Redis支持能力如何?

在典型的一主多從的Redis系統中,當主用數據庫異常中斷後,只能由集成商通過手工切換數據源的方式將從數據庫升級為主數據庫,但過程複雜,難以實現自動化。

而Redis哨兵功能將自動檢查各主備數據庫的運行狀態,當主用死機時,將自動升級備機1為主用機,並將原備機2升級為備機1。client程序將通過zookeeper等方式切換數據源,實現自動切換。