歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> redis全內存運行

redis全內存運行

日期:2017/2/27 15:56:54   编辑:Linux教程
Redis 本身支持持久化,通過在一定時間間隔或觸發操作,將內存中的數據同步到磁盤來保證持久化。Redis 支持兩種持久化方式,一種是 Snapshotting(快照),保存為dump.rdb文件,也是默認方式,另一種是 Append-only file(縮寫aof)的方式,保存為 .aof 文件。

Snapshot 快照 通過save或者bgsave命令通知redis做一次快照持久化。save操作是在主線程中保存快照的,由於redis是用一個主線程來處理所有客戶端的請求,這種方式會阻塞所有客戶端請求。所以不推薦使用。另一點需要注意的是,每次快照持久化都是將內存數據完整寫入到磁盤一次,並不是增量的只同步增量數據。如果數據量大的話,寫操作會比較多,必然會引起大量的磁盤IO操作,可能會嚴重影響性能。

在默認的快照 rdb保存方式中,redis.conf 裡面的配置如下
save 900 1   #900秒內如果超過1 個key 被修改,則發起快照保存 
save 300 10  #300秒內容如超過10個key 被修改,則發起快照保存 
save 60 10000
如果我們需要關閉快照,只需要將這幾行注釋了,然後重啟 redis 即可。

如果是正在運行的實例,可以使用 redis-cli的命令
# 查看當前配置
config get save
# 關閉快照
config set save ""
來在線更新配置,輸出OK表示設置成功。

AOF 比快照方式有更好的持久化性,是由於在使用aof 持久化方式時, redis 會將每一個收到的寫

命令都通過write函數追加到文件中(默認是appendonly.aof) 。當redis 重啟時會通過重新執行文件中

保存的寫命令來在內存中重建整個數據庫的內容

默認配置如下:
appendonly yes      //啟用日志追加持久化方式
#appendfsync always //每次收到寫命令就立即強制寫入磁盤,最慢的,但是保證完全的持久化,不推薦使用
appendfsync everysec //每秒鐘強制寫入磁盤一次,在性能和持久化方面做了很好的折中,推薦
#appendfsync no //完全依賴操作系統,性能最好,持久化沒保證
我們需要更新配置文件為:
appendfsync no
在線更新配置使用
# 查看當前配置
config get appendfsync
# 關閉快照
config set appendfsync no
通過這兩個配置,redis就可以完全在內存運行。

如果想手動進行持久化,可以使用Redis的 bgsave 和 bgrewriteaof 來手動進行持久化。
原文:http://my.oschina.net/ifeixiang/blog/363439
Copyright © Linux教程網 All Rights Reserved