1. 程式人生 > >redis 資料庫安裝流程(Linux)

redis 資料庫安裝流程(Linux)

redis(Remote Dictionary Server)

是一個開源的使用ANSI C語言編寫、遵守BSD協議、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,提供了多種語言的API,因其值(value)可以是 字串(String),雜湊(hash),列表(list),集合(sets) 和有序集合(sorted sets)等型別,又被稱為資料結構伺服器

Redis的所有操作都是原子性的,意思就是要麼成功執行要麼失敗完全不執行。單個操作是原子性的。多個操作也支援事務,即原子性,通過MULTI和EXEC指令包起來。Redis服務端的預設埠是6379

Redis和memcache相比的獨特之處

  • redis可以用來做儲存(storge)、而memcache是來做快取(cache),這個特點主要是因為其有“持久化”功能;
  • 儲存的資料有“結構”,對於memcache來說,儲存的資料,只有一種型別——“字串”,而redis則可以儲存字串、連結串列、集合、有序集合、雜湊值。

redis 安裝流程

  1. 定位到你要下載和解壓的資料夾,如
    # cd /usr/local/src

  2. 依次輸入以下指令,進行安裝
    $ wget http://download.redis.io/releases/redis-5.0.3.tar.gz

    // wget 指令下載 redis 壓縮檔案

    • 如果提示
      [[email protected] src]# wget http://download.redis.io/releases/redis-5.0.3.tar.gz
      -bash: wget: command not found
      
      則執行以下語句,安裝 wget 命令
      [[email protected] src]# yum -y install wget
      
      提示 complete 安裝成功
    • 執行 wget 命令下載
      成功下載 redis-5.0.3.tar.gz

    $ tar -xzvf redis-5.0.3.tar.gz // tar 指令解壓檔案
    成功解壓
    $ cd redis-5.0.3

    // 定位到解壓成的資料夾 redis-5.0.3
    $ make // 呼叫 make 指令,執行編譯,make是自動編譯,會根據Makefile中描述的內容來進行編譯
    根據 Makefile 中的檔案,進行 make 自動編譯

    如果出現報錯 cc: command not found ,則安裝gcc命令,gcc是c的編譯命令
    # yum -y install gcc-c++ // 安裝 make 工具的編譯器 gcc
    報錯 cc: command not found
    gcc-c++ 安裝 complete
    安裝成功後,再次執行 make 命令,如果再次報錯
    安裝 gcc-c++ 之後再次報錯

    則輸入 make clean 後再次 執行 make ,然後檢查 redis-5.0.3/src 目錄或 /usr/local/bin下有沒有 redis-serverredis-cli ,若無,則把redis-5.0.3 資料夾刪掉,再解壓一次redis的壓縮包,然後 cd redis-5.0.3 進入資料夾中,再次執行make 指令
    執行 make 編譯成功
    如果執行 make test 出現 You need tcl 8.5 or newer in order to run the Redis test,需要安裝 tcl,輸入yum install tcl,然後make test就可以再執行了
    執行 make test 報錯
    tcl 安裝 complete
    安裝 tcl 之後,如果再次make test 報錯 warning,則先執行 make clean,接著再執行make,然後再執行make test即可
    make test 報錯 warning
    make test 報錯 warning
    先執行 make clean,接著再執行 make
    最後執行 make test 成功,同時 redis 也安裝成功
    或者使用 # make PREFIX=/usr/local/src/redis install // 執行安裝,指向特定的資料夾 redis
    PS: 注意此命令的使用,儘量不和make同時使用,避免安裝到了不同的資料夾,而引起後面 ./redis-server./redis-cli啟動宕機的情況,因此 儘量避免 make 使用了之後還用 # make PREFIX=/usr/local/src/redis install
    指定 prefix 的優點

    linux中不指定 prefix 檔案預設存放
    可執行檔案 /usr/local/bin
    庫檔案 /usr/local/lib
    配置檔案 /usr/local/etc
    其他資原始檔 /usr/local/share

    如果要解除安裝這個程式,要麼在原來make目錄下用make uninstall,要麼去上述檔案中一個一個手動刪除,而指定prefix,直接刪掉一個資料夾就夠了。

  3. 進入 安裝 redis 的資料夾 usr/local/src/redis-5.0.3/src ,啟動 redis 伺服器,並進行相關配置
    # cd usr/local/src/redis-5.0.3/src
    # ./redis-server // 啟動 redis 伺服器,第一次啟動
    預設情況下,redis不是在後臺執行,我們需要把redis放在後臺執行;
    後續沒有提示 congratulation loaded,此時進入 redis-cli 需要新開一個視窗
    當執行 redis-server 後不繼續操作,且沒有提示 congratulation loaded ,此時是在前臺啟動的,按ctrl + C 可退出redis 啟動視窗,此時 redis 並不會關閉,而是會在後臺執行,可通過命令 ps aux | grep redis 檢視,並且此時需要重新啟動一個客戶端來進行登陸操作,這樣非常不方便,所以,我們需要設定通過配置項啟動,control + z 退出,進入cd usr/local/src/redis-5.0.3找到redis.conf,輸入:
    # vim redis.conf
    daemonize 程序守護 改為 yes
    # redis-server /usr/local/src/redis-5.0.3/redis.conf // 修改 daemonize 之後退出,啟動該列指令,usr前面的斜槓不能少,末尾一定要帶上redis.conf,以後啟動都需要執行該指令,否則同樣需要新開視窗
    配置後臺執行成功,提示 congratulation loaded
    測試安裝後的 redis

正常停止 redis-server 服務,使用reids 命令: # redis-cli shutdown

設定 redis 伺服器指令碼啟動步驟

  1. 複製目標檔案:在/etc/init.d目錄下建立redis的啟動指令碼:將 redis-5.0.3 目錄下的 utils/redis_init_script 複製到 /etc/init.d 目錄下,命名為 redis_scriptstart
    redis-5.0.3 目錄下的utils/redis_init_script
    目標資料夾 /etc/init.d
  2. 編輯啟動檔案,修改其中指定的pid和配置檔案
    cd etc/init.d 進入 etc 資料夾修改複製過來的 redis_scriptstart

修改啟動檔案中指定的pid(程序id)和配置檔案

  1. 建立存放pid(程序id)的資料夾,/var/redis/run,注意 redis 預設不是以守護程序的方式執行,可以通過該配置項修改,使用yes啟用守護程序daemonize no-> daemonize yes,當 redis 以守護程序方式執行時,redis預設會把pid寫入 /var/redis/run/redis_6379.pid 檔案,可以通過pidfile指定pidfile /var/redis/run/redis_6379.pid
    建立 /var/redis/run

  2. 建立存放配置檔案的資料夾,/etc/redis,並將配置檔案複製到此目錄下,同時修改 .conf 配置
    建立資料夾 /etc/redis
    複製配置檔案存放
    修改 .conf 配置檔案 /etc/redis 和 /redis-5.0.3 的兩個目錄
    最後便可以通過service redis_scriptstart start指令開啟 redis 伺服器。

redis-benchmark redis效能測試工具
redis-check-aof 檢查aof日誌的工具
redis-check-dump 檢查rdb日誌的工具
redis-cli 連線用的客戶端
redis-server redis服務程序