1,下載編譯安裝redis
http://www.redis.cn/download.html
下載完成,使用rz命令上傳至linux 服務器
tar -xvf redis-5.0.5.tar.gz #解壓源碼包
mv redis-5.0.5 /usr/local/redis #將源碼包移動到/usr/local/目錄下,重命名爲redis
cd /usr/local/redis/ #cd 到源碼目錄裏
make #編譯
中間有兩個報錯,解決
#沒有安裝gcc 包,yum install gcc -y 解決
#加個環境變量一起編譯 make MALLOC=libc 用這句命令能正常編譯
make install #安裝編譯完成的程序,也可以不用安裝,cd 到src目錄 執行也行
cd /usr/local/bin/ #這個目錄是安裝完成後 生成的腳本,打開關閉 客戶端工具都在裏面
2.配置 配置文件,啓動 關閉 redis
vim /usr/local/redis/redis.conf #配置 redis 配置文件,修改以下選項
bind 0.0.0.0 #監聽IP 0.0.0.0 表示此計算機所有IP都監聽
daemonize yes #是否後臺啓動redis,打開
protected-mode no # redis的安全機制,打開可能會報錯
#requirepass 123456 #設置密碼,默認註釋狀態。
redis-server /usr/local/redis/redis.conf #指定配置文件啓動 redis
netstat -nltp|grep 6379 #檢查6379 是否被監聽了,這個端口是redis默認端口
redis-cli #登陸客戶端,輸入幾個值,查看以下
redis-cli shutdown #關閉redis服務
3.RDB持久化
RDB持久化方式是通過快照(snapshotting)完成的,當符合一定條件時,redis會自動將內存中所有數據以二進制方式生成一份副本並存儲在硬盤上。當redis重啓時,並且AOF持久化未開啓時,redis會讀取RDB持久化生成的二進制文件(默認名稱dump.rdb,可通過設置dbfilename修改)進行數據恢復,對於持久化信息可以用過命令“info Persistence”查看。
快照觸發條件
RDB生成快照可自動促發,也可以使用命令手動觸發,以下是redis觸發執行快照條件,後續會對每個條件詳細說明:
客戶端執行命令save和bgsave會生成快照;
根據配置文件save m n規則進行自動快照;
主從複製時,從庫全量複製同步主庫數據,此時主庫會執行bgsave命令進行快照;
客戶端執行數據庫清空命令FLUSHALL時候,觸發快照;
客戶端執行shutdown關閉redis時,觸發快照;
save命令觸發和shutdown觸發
客戶端執行save命令,該命令強制redis執行快照,這時候redis處於阻塞狀態,不會響應任何其他客戶端發來的請求,直到RDB快照文件執行完畢,所以請慎用。
首先使用redis-cli info Persistence 查看最近一次持久化時間:
#可以看到數據是一組時間戳看的 不方便看,我們可以用AWK 配合date命令轉換下
date "+%Y-%m-%d %H:%M:%S" -d @`redis-cli info Persistence|awk -F":" 'NR==5{print$2}'`
#可以看到運行了 redis-cli save 命令,最後一次的保存時間已經發生了改變
shutdown觸發
#注意只有正常關閉纔會觸發保存,直接kill是無法觸發的
bgsave命令觸發
basave 命令執行之後立即返回 OK ,然後 Redis fork 出一個新子進程(在此期間父進程不響應請求),原來的 Redis 進程(父進程)繼續處理客戶端請求,而子進程則負責將數據保存到磁盤,然後退出。
#用法和save 差不多,但是阻塞時間比save 大大減少了
save m n規則觸發
這個配置在配置文件裏
默認
save 900 1 #表示900秒內有1個鍵發生修改,觸發bgsave
save 300 10 #表示300秒內有10個鍵發生修改,觸發bgsave
save 60 10000 #表示60秒內有10000個鍵發生修改,觸發bgsave
#上面關係式或的意思,滿足一個即可觸發bgsave
FLUSHALL觸發和主從觸發
flushall命令用於清空數據庫,請慎用,當我們使用了則表明我們需要對數據進行清空,那redis當然需要對快照文件也進行清空,所以會觸發bgsave。
在redis主從複製中,從節點執行全量複製操作,主節點會執行bgsave命令,並將rdb文件發送給從節點。
RDB持久化配置——配置文件
save m n
#配置快照(rdb)促發規則,格式:save <seconds> <changes>
#save 900 1 900秒內至少有1個key被改變則做一次快照
#save 300 10 300秒內至少有300個key被改變則做一次快照
#save 60 10000 60秒內至少有10000個key被改變則做一次快照
#關閉該規則使用svae “”
dbfilename dump.rdb
#rdb持久化存儲數據庫文件名,默認爲dump.rdb
stop-write-on-bgsave-error yes
#yes代表當使用bgsave命令持久化出錯時候停止寫RDB快照文件,no表明忽略錯誤繼續寫文件。
rdbchecksum yes
#在寫入文件和讀取文件時是否開啓rdb文件檢查,檢查是否有無損壞,如果在啓動是檢查發現損壞,則停止啓動。
dir "/etc/redis"
#數據文件存放目錄,rdb快照文件和aof文件都會存放至該目錄,請確保有寫權限
rdbcompression yes
#是否開啓RDB文件壓縮,該功能可以節約磁盤空間