Redis 01: 非關係型資料庫 + 配置Redis

資料庫應用的發展歷程

  • 單機資料庫時代:一個應用,一個資料庫實例

  • 快取時代:對某些表中的數據訪問頻繁,則對這些數據設置快取(此時資料庫中總的數據量不是很大)

  • 水平切分時代:將資料庫中的表存放到不同資料庫實例中(單張表中存放的數據太多),一個應用可以對應多個資料庫實例

  • 垂直切分時代:將一個表按照欄位拆分,同一張表中的數據存放到不同表,甚至於不同資料庫中(因為此時一個表中的一個欄位的數據量已經很大)

  • 讀寫分離時代:有的資料庫負責接收查詢命令,有的資料庫負責接收數據導入,數據修改等請求,將讀寫請求分離開,緩解資料庫壓力

  • 分表分庫時代(集群):一個表中的數據分成多表或者多庫存儲,要查詢哪個階段的數據就去查詢對應階段的資料庫

  • 關係型資料庫:oracle、mysql、DB2、sqlserver…

  • 非關係型資料庫(NoSql): 徹底改變底層存儲機制。不再採用關係數據模型,而是採用聚合數據結構存儲數據。redis、mongoDB、HBase…

關係型與非關係型資料庫的表結構對比

  • 關係型

    tbl_student                              tbl_clazz
    id    name     age     clazz_id          id       name
    1001  zhangsan 20      111               111      clazz1
    1002  lisi     21      111               222      clazz2
    
  • 非關係型

    {
        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

  • 官網://redis.io/download/ 下載redis的tar包

    image

  • 上傳到linux伺服器(筆者使用的是Centos7):這裡使用的是git工具上傳壓縮包,伺服器的ip地址被我塗去了

    image

  • 在linux伺服器端的對應目錄下解壓剛剛上傳的壓縮包

    image

  • 確保已經安裝了gcc,redis是c語言寫的,要手動編譯

    yum -y install gcc
    
  • 進入解壓好的目錄

    cd ./redis-5.0.2
    

    image

  • 執行:make命令, 成功編譯結果如下,編譯過程會輸出較多內容,所用時間也許較長,請保持淡定

    make
    

    image

  • 接著執行:make install命令

    make install
    
    該操作則將 src下的許多可執行文件複製到/usr/local/bin 目錄下(該目錄已經被默認配置到系統環境變數中),這樣做可以在任意目錄執行redis的軟體的命令(例如啟動,停止,客戶端連接伺服器等)
    

    image

  • 後台啟動redis,檢查配置是否成功,當啟動資訊輸出後,回車,便可以回到命令行,此時redis服務已經啟動並轉到後台運行

    image

  • 默認(redis服務啟動在默認IP地址以及默認埠)客戶端連接已經啟動的redis服務:redis-cli

  • 退出客戶端連接:exit或者quit

  • 關閉redis服務:redis-cli shutdown

    image

啟動redis服務以及連接redis服務的方式總結

1、啟動redis服務:
   1)前台啟動:在任何目錄下執行 redis-server(不推薦)
   2)後台啟動:在任何目錄下執行 redis-server &
   3)啟動redis服務時,指定配置文件:redis-server redis.conf &
2、關閉redis服務:
   1)、通過kill命令(不推薦):
       ps -ef|grep redis查看pid
       kill -9 pid
   2)、通過redis-cli命令關閉:
       redis-cli shutdown
3、redis的客戶端:用來連接redis服務,向redis服務端發送命令,並且顯示redis服務處理結果。
   redis-cli:是redis自帶客戶端,使用命令redis-cli就可以啟動redis的客戶端程式。

   redis-cli:默認連接127.0.0.1(本機)的6379埠上的redis服務。
   redis-cli -p 埠號:連接127.0.0.1(本機)的指定埠上的redis服務。
   redis-cli -h ip地址 -p 埠:連接指定ip主機上的指定埠的redis服務。
4、退出客戶端:在客戶端執行命令:exit或者quit
Tags: