Redis安全以及備份還原
阿新 • • 發佈:2018-12-30
啟用密碼
配置密碼,配置檔案中新增節點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作為快取的本身的意義。