1. 程式人生 > >Redis安全以及備份還原

Redis安全以及備份還原


啟用密碼

配置密碼,配置檔案中新增節點requirepass,如下root即password
requirepass root
可以在登陸的時候用-a 指定password登陸,也可以不指定,登陸之後使用auth執行密碼

備份還原

RBD的方式(Redis DataBase)

嚴格說Redis中的save並算是備份命令,save命令也只是將記憶體資料同步到資料檔案的機制,Redis會預設的對記憶體資料與物理檔案做同步。
Redis配置檔案中預設的備份配置如下,這相當於Redis類似於MySQL或者MSSQL中的checkpoint,定時將髒資料刷入物理檔案。
Redis的資料檔案並不是與資料實時同步的,在預設的配置下以及說明如下
# save 900 1      900秒內至少有1個key被改變
# save 300 10      300秒內至少有10個key被改變
# save 60 10000     60秒內至少有10000個key被改變

所謂的備份也是用save命令(或者bgsave後臺執行命令),也即主動將當前記憶體中的資料與物理檔案做一次同步,但是並沒有真正的做一個數據檔案的冗餘(用來備份)
真正意義的備份應該是需要自己做資料檔案的冗餘儲存。copy一份到別的地方。還原即把資料檔案的copy重新拿回來,啟動Redis服務。

Redis資料檔案路徑可以通過config get dir獲取

AOF(Append-only file)

儲存一系列Redis寫操作命令的方式(有點類似於MySQL的binlog的趕腳有沒有)

dir "/data/dbs/redis/6381"           #AOF檔案存放目錄
appendonly yes                       #開啟AOF持久化,預設關閉
appendfilename "appendonly.aof"      #AOF檔名稱(預設)
appendfsync no                       #AOF持久化策略
auto-aof-rewrite-percentage 100      #觸發AOF檔案重寫的條件(預設)
auto-aof-rewrite-min-size 64mb       #觸發AOF檔案重寫的條件(預設)

自己的一點想法:

Redis本身就是作為快取資料,為效能而生的,不應該為了持久化做出太大效能上的犧牲,否則本身就失去了Redis作為快取的本身的意義。