centos6.5下redis的安裝與配置心得
$ wget http://download.redis.io/releases/redis-3.2.9.tar.gz
$ tar xzf redis-3.2.9.tar.gz
$ cd redis-3.2.9
$ make 或者 make install PREFIX=安裝目錄上述流程依次代表,下載redis --> 解壓 --> 進入解壓目錄 --> 編譯原始碼多數情況下,執行make時,可能會出現如下錯誤:
異常一:
make[2]: cc: Command not found
異常原因:沒有安裝gcc
解決方案:yum install gcc-c++
異常二:
zmalloc.h:51:31: error: jemalloc/jemalloc.h: No such file or directory
異常原因:一些編譯依賴或原來編譯遺留出現的問題
解決方案:make distclean。清理一下,然後再make。
在make成功以後,需要make test。在make test出現異常。
異常一:
couldn't execute "tclsh8.5": no such file or directory
異常原因:沒有安裝tcl
解決方案:yum install -y tcl。
到此,redis安裝完成。若是通過:make install PREFIX=安裝目錄, 完成安裝的,會在安裝目錄下生成一個bin目錄,bin目錄下包含如下可執行檔案:
redis-benchmark : 用於測試redis的效能。
redis-check-aof : 當aof備份檔案被損壞,可通過該工具對aof檔案進行修復,使用方式:redis-check-aof --fix 要修復的aof檔案。
redis-check-rdb : 修復損壞的rdb備份檔案。
redis-cli : redis客戶端,用於連線服務端。
redis-server : redis伺服器端,用於啟動redis伺服器。
redis-sentinel : 哨兵模式(實際使用較多) 在master-slave模式下(slave預設不支援寫),當master出現異常時,自動在slave中選擇一臺作為master。
連線上redis伺服器後,可通過指令“info
下面介紹幾個redis常用配置項(redis.cnf配置檔案中配置)1、bind 127.0.0.1 配置redis伺服器接受連結的網絡卡(非客戶端ip,而是伺服器端ip,伺服器可能包含多個網絡卡)2、protected-mode yes redis以保護模式執行,只接受本地連結,不能外網訪問3、port 6379 redis接受連結埠4、daemonize no redis是否後臺執行,若為yes,客戶端視窗將被鎖定重要配置項5、maxmemory redis最大使用記憶體6、maxmemory-policy 記憶體達到最大值時的驅逐策略redis資料持久化支援兩種模式:RDB和AOFRDB:rdb方式的持久化是通過快照完成的,當符合一定條件時redis會自動將記憶體中的所有資料執行快照操作並存儲到硬碟上。預設儲存在redis根目錄的dump.rdb檔案中。(檔名在配置檔案中dbfilename)
redis進行快照的時機(在配置檔案redis.conf中)
save 900 1:表示900秒內至少一個鍵被更改則進行快照。
save 300 10
save 60 10000
dbfilename dump.rdb 快照儲存檔名dir ./ 快照儲存地址也可通過redis客服端執行命令save或者bgsave儲存快照:
兩個命令的區別在於,save是由主程序進行快照操作,會阻塞其它請求。bgsave是由redis執行fork函式複製出一個子程序來進行快照操作。
檔案修復:redis-check-dump
rdb的優缺點
優點:由於儲存的有資料快照檔案,恢復資料很方便。
缺點:會丟失最後一次快照以後更改的所有資料。
AOF:
aof方式的持久化是通過日誌檔案的方式,記錄下redis伺服器的每一條修改指令。預設情況下redis沒有開啟aof,可以通過引數appendonly引數開啟。
appendonly yes
aof檔案的儲存位置和rdb檔案的位置相同,都是dir引數設定的,預設的檔名是appendonly.aof,可以通過 appendfilename引數修改
appendfilename appendonly.aof
redis寫命令同步的時機:
appendfsync always 每次都會執行
appendfsync everysec 預設 每秒執行一次同步操作(推薦,預設)
appendfsync no不主動進行同步,由作業系統來做,30秒一次
redis伺服器啟動時會讀取appendonly.aof中的指令,進行執行,這樣便保證了重啟後資料不會丟失。
注意:當redis啟動時,如果rdb持久化和aof持久化都打開了,那麼程式會優先使用aof方式來恢復資料集,因為aof方式所儲存的資料通常是最完整的。
最後記錄下redis伺服器的啟動與關閉指令:
[[email protected] src]# ./redis-server ../redis.conf 啟動redis [[email protected] src]# ./redis-cli shutdown 關閉redis