Redis 01: 非關系型數據庫 + 配置Redis

數據庫應用的發展歷程

  • 單機數據庫時代:一個應用,一個數據庫實例
  • 緩存時代:對某些表中的數據訪問頻繁 , 則對這些數據設置緩存(此時數據庫中總的數據量不是很大)
  • 水平切分時代:將數據庫中的表存放到不同數據庫實例中(單張表中存放的數據太多),一個應用可以對應多個數據庫實例
  • 垂直切分時代:將一個表按照字段拆分,同一張表中的數據存放到不同表,甚至于不同數據庫中(因為此時一個表中的一個字段的數據量已經很大)
  • 讀寫分離時代:有的數據庫負責接收查詢命令,有的數據庫負責接收數據導入,數據修改等請求,將讀寫請求分離開,緩解數據庫壓力
  • 分表分庫時代(集群):一個表中的數據分成多表或者多庫存儲,要查詢哪個階段的數據就去查詢對應階段的數據庫
  • 關系型數據庫:oracle、mysql、DB2、sqlserver...
  • 非關系型數據庫(NoSql): 徹底改變底層存儲機制 。不再采用關系數據模型,而是采用聚合數據結構存儲數據 。redis、mongoDB、HBase...
關系型與非關系型數據庫的表結構對比
  • 關系型
    tbl_studenttbl_clazzidnameageclazz_ididname1001zhangsan 20111111clazz11002lisi21111222clazz2
  • 非關系型
    {id:1001, name:zhangsan, age:20, clazz:{id:111,name:clazz1 }}{id:1002, name:lisi, age:21, clazz:{id:111,name:clazz1 }}
非關系型數據庫的表結構特點
  • 采用聚合模型存儲數據
    把一組相關聯的數據作為一個整體進行存儲和管理 。將BSON數據保存到鍵值對中、數據和數據之間逗號隔開,{}表示對象,[]表示數組 。
  • 關于BSON數據格式
    其中BSON指:一種計算機數據交換格式,主要被用作MongoDB數據庫中的數據存儲和網絡傳輸格式 。它是一種二進制表示形式,能用來表示簡單數據結構、關聯數組(MongoDB中稱為“對象”或“文檔”)以及MongoDB中的各種數據類型 。BSON之名緣于JSON,含義為Binary JSON(二進制JSON)
  • 可采用K-V鍵值對、列簇、圖表模型等存儲數據 。
Redis簡介
  • Redis是一種數據庫 。能夠存儲數據、管理數據的一種軟件 。
  • Redis是一個用C語言編寫的、開源的、基于內存運行并支持持久化的、高性能的NoSQL(not only sql)數據庫.也是當前熱門的NoSQL數據庫之一 。
  • Redis中的數據大部分時間都是存儲內存中的,適合存儲頻繁訪問、數據量比較小的數據,是一種緩存數據庫
  • Redis采用的是K-V模型存儲數據的 。
Redis特點1、支持數據持久化 Redis支持數據的持久化,可以將內存中的數據保持在磁盤中,重啟的時候可以再次加載進行使用 。2、支持多種數據結構 Redis不僅僅支持簡單的key-value類型的數據,同時還提供list,set,zset , hash等數據結構的存儲 。3、支持數據備份 Redis支持數據的備份,即master-slave模式的數據備份 。linux環境下配置Redis