一、redis的事務非常簡單(簡單瞭解)
使用方法如下:首先是使用:multi 命令打開事務,然後進行設置,這時設置的數據都會放入隊列裏進行保存;
最後使用:exec 命令執行,把數據依此存儲到redis中;
使用 :discard 命令取消事務。
注:redis的事務不能保證同時成功或失敗進行提交或回滾,所以redis的事務目前還是比較簡單的。
二、redis持久化機制
redis是一個支持持久化的內存數據庫,也就是說redis需要經常給內存中的數據同步到硬盤來保證持久化。redis有兩種持久化方式:
1、snapshotting(快照)默認方式,將內存中以快照的方式寫入到二進制文件中,默認爲dump.rdb,可以通過配置設置自動做快照持久化的方式。我們可以配置redis在n秒內如果超過m個key則修改就自動做快照。
snapshotting設置:save 900 1 #900秒內如果超過1個key被修改,則發起快照保存;
save 300 10 #300秒內如果超過10個key被修改,則發起快照保存;
save 60 10000
2、append-only file(aof縮寫)的方式(有點類似於oracle日誌)由於快照方式是在一定時間間隔做一次,所以可能發生redis意外down的情況就會丟失最後一次快照後的所有修改的數據,aof比快照方式更好的持久化性,是由於aof在使用時,redis會將每一個收到的寫命令都通過write函數追加到命令中,當redis重新啓動時會重新執行文件中保存的寫命令來在內存中重建這個數據庫的內容,這個文件在bin目錄下:appendonly.aof(aof不是立即寫到硬盤上,可以通過配置文件修改強制寫到硬盤中)
aof設置:
將appendonly no 改爲:appendonly yes #啓動aof
(瞭解)持久化方式有三種:A、appendfsync always(收到寫命令就立即寫入到磁盤,效率最慢,但是保證完全的持久化);B、appendfsync everysec(每秒鐘寫入磁盤一次,在性能和持久化方面做了很好的折中);C、appendfsync no(完全依賴os,性能最好,持久化沒有保證);
三、發佈與訂閱
命令:subscribe【頻道名】;#進行訂閱監聽;
命令:publish【頻道名】【發佈內容】;#進行消息發佈;