redis基礎

2020-08-11 20:46:27

Redis

  1. NoSQL

    • High performance對數據庫高併發讀寫的需求
    • Huge storage對海量數據高效率的儲存和存取的需求
    • High Scalability && High Availability 對數據庫的高擴充套件性和高可用性的需求
  2. 數據型別

    redis是C語言開發的一個開源的高效能的鍵值對(key-value)記憶體數據庫,目前Redis支援的鍵值數據型別如下:

    • 字串型別string
    • 雜湊型別hash
    • 列表型別list
    • 集合型別set
    • 有序集合型別zset
  3. 特點

    • redis支援數據的持久化,即可以將記憶體中的數據儲存到磁碟中,重新啓動時可以再次載入使用
    • redis不僅僅支援簡單的key-value型別的數據,同時還提供list,set,zset,hash等數據結構儲存
    • redis支援數據的備份,即master-slave模式的數據備份
  4. 應用場景

    • 取最新N個數據(排行榜)
    • 需要精確設定過期時間的應用
    • 計數器應用
    • 實時性要求的高併發讀寫
    • 訊息佇列的pub/sub
    • 構建佇列
    • 快取
  5. 優缺點

    1. 優點

      • 讀數據高併發讀寫(基於記憶體)
      • 對海量數據的高效率儲存和存取
      • 對數據的可高擴充套件性和高可用性
        • 垂直擴充套件:提升硬體
        • 水平擴充套件:叢集
    2. 缺點

      redis無法做到太複雜的數據關係模型(ACID處理非常簡單)

  6. Redis面向網際網路的解決方案

    • 主從:一主多從,主機可寫,從機備份,類似於mysql的讀寫分離,存在問題是一旦主節點down掉,整個redis不可用

    • 哨兵(2.x):啓用一個哨兵程式(節點),監控其餘節點狀態,根據選舉策略,進行主從切換.

      缺點:每個節點的數據依舊是一致的,仍無法實現分佈式的數據庫

    • 叢集(3.x):結合上述兩種模式,多主多從,實現高可用分佈式數據儲存

  7. Redis安裝

    1. 因爲Redis是C語言開發的,首先安裝C語言執行環境

      yum install gcc-c++

    2. 官網下載最新安裝包

      cd /usr/local

      wget http://download.redis.io/releases/redis-5.0.8.tar.gz?_ga=2.64859303.942109333.1597134648-971247183.1597134648

    3. 解壓

      tar zxvf redis-5.0.8.tar.gz?_ga=2.64859303.942109333.1597134648-971247183.159713464

      mv redis-5.0.8 redis

    4. 進入到redis目錄執行編譯命令

      cd redis

      make

      make PREFIX-/usr/local/redis install

    5. 啓動伺服器端

      src/redis-server

在这里插入图片描述

  1. 啓動用戶端

    src/redis-cli

    在这里插入图片描述

  2. 現在是前臺啓動,我們修改組態檔指定組態檔後臺啓動

    vim redis.conf

在这里插入图片描述

  src/redis-server ./redis.conf
  1. 關閉redis

    src/redis-cli shutdown

  2. redis的持久化
    • RDBfan方式

      RedisDataBase(RDB)就是在指定時間間隔內將記憶體中的數據集快照寫入磁碟,數據恢復時將快照檔案直接再讀取到記憶體.

      RDB儲存了在某個時間點的數據集,儲存在一個二進制檔案中,只有一個檔案,預設是dump.rdb.RDB技術非常適合做備份,可以儲存最近一個小時,一天,一個月的全部數據,儲存數據是在單獨的進程中寫檔案,不影響Redis正常使用,RDB回覆 回復數據比AOF快

    • AOF方式

      Append-onlFile(AOF),Redis每次接收到一條改變數據的命令時,它將把該命令寫到一個AOF檔案中(只記錄寫操作,不記錄讀操作),當redis重新啓動時,它通過執行AOF檔案中的所有命令來回複數據