天天看點

Redis開發運維實踐常見運維操作(三)3.12 Redis-cli指令行其他操作6.13 持久化與備份恢複3.13.1 RDB相關操作3.13.2 AOF相關操作3.13.3 備份3.13.4 恢複

redis 127.0.0.1:6379> echo hongwan "hongwan"

redis 127.0.0.1:6379> quit

echo -en "chen.qun" | redis-cli -x set name

-r 選項重複執行一個指令指定的次數。 -i 設定指令執行的間隔。 比如檢視redis每秒執行的commands(qps) redis-cli -r 100 -i 1 info stats | grep instantaneous_ops_per_sec 這個選項在編寫一些腳本時非常有用

redis-cli -h 192.168.44.16 -p 6379 --rdb 6379.rdb

模拟slave從master上接收到的commands。slave上接收到的commands都是update操作,記錄資料的更新行為。

這個一個非常有用的參數。發送原始的redis protocl格式資料到伺服器端執行。比如下面的形式的資料(linux伺服器上需要用unix2dos轉化成dos檔案)。 linux下預設的換行是\n,windows系統的換行符是\r\n,redis使用的是\r\n. echo -en '*3\r\n$3\r\nset\r\n$3\r\nkey\r\n$5\r\nvalue\r\n' | redis-cli --pipe

如果開啟了requirepass,那麼你如果希望調用或者自己編寫一些外部腳本通過redis-cli進行操作或者監控redis,那麼這個選項可以讓你不用再手動輸入auth。這個選項很普遍,但是往往被人忽視。

bgsave:背景子程序進行rdb持久化 save:主程序進行rdb,生産環境千萬别用,伺服器将無法響應任何操作。 lastsave: 傳回上一次成功save的unix時間

動态關閉rdb:

動态設定rdb:

永久關閉rdb:

永久設定rdb:

檢視rdb是否打開:

空的即是關閉,有數字的都是打開的。

在背景執行一個 aof檔案重寫操作

動态關閉aof:

動态打開aof:

永久關閉aof:

永久打開aof:

對于rdb和aof,都是直接拷貝檔案即可,可以設定crontab進行定時備份: cp /var/lib/redis/dump.rdb /somewhere/safe/dump.$(date +%y%m%d%h%m).rdb

如果隻使用了rdb,則首先将redis-server停掉,删除dump.rdb,最後将備份的dump.rdb檔案拷貝回data目錄并修改相關屬主保證其屬主和redis-server啟動使用者一緻,然後啟動redis-server。

如果是rdb+aof的持久化,隻需要将aof檔案放入data目錄,啟動redis-server,檢視是否恢複,如無法恢複則應該将aof關閉後重新開機,redis就會從rdb進行恢複了,随後調用指令bgrewriteaof進行aof檔案寫入,在info的aof_rewrite_in_progress為0後一個新的aof檔案就生成了,此時再将配置檔案的aof打開,再次重新開機redis-server就可以恢複了。注意先不要将dump.rdb放入data目錄,否則會因為aof檔案萬一不可用,則rdb也不會被恢複進記憶體,此時如果有新的請求進來後則原先的rdb檔案被重寫。

如果隻配置了aof,重新開機時加載aof檔案恢複資料。

恢複速度參見新浪的測試結果:

Redis開發運維實踐常見運維操作(三)3.12 Redis-cli指令行其他操作6.13 持久化與備份恢複3.13.1 RDB相關操作3.13.2 AOF相關操作3.13.3 備份3.13.4 恢複

這個結果是可信的,在一台ssd、4個cpu的虛拟機上測試為28.3g/s.

檢查修複aof檔案:

<b>redis開發運維實踐指南</b>

本文為《redis開發運維實踐指南》内容,該書作者為黃鵬程,已授權雲栖社群轉載。 

<code></code>