Redis的高階應用——資料安全
Redis的資料儲存在記憶體中,速度十分快。這也就意味著,一個惡意破解redis資料庫密碼的使用者,可以在一秒鐘進行更多的嘗試。如果使用者密碼級別較低或更換頻率過長,就會造成致命的危害。
1、設定使用者
Redis預設是沒有使用者的,我們可以在執行各種操作命令時,都不需要使用者驗證,但這是十分不安全的,多人使用Redis的話,也是特別不好管理的。下面介紹如何設定Redis使用者:
1)進入安裝目錄,編輯檔案redis.conf。
2)輸入“/”,搜尋requirepass foobared
3)重啟Redis
客戶端連線,需要輸入使用者身份:
兩種方式:
——使用“auth”命令
——在客戶端連線時指定使用者
注意:如果原來未設定使用者,立刻修改配置檔案,重啟Redis後必須輸入使用者名稱,並且輸入使用者名稱之後之前的資料就找不到了。因此,在設定使用者前,一定要做好備份!
2、持久化相關
Redis中的key資料儲存在記憶體中,關機會釋放。同樣,他也支援持久化同步到硬碟。這樣使得Redis的資料安全性大大提高。
兩種方式:
1)snapshotting(快照)
Redis的預設方式,該方式下記憶體資料存入二進位制檔案,但無法檢視,一般檔案型別為dump.rdb。
具體配置在redis.conf檔案中,語法含義註釋也說的挺清楚了,就不多說了。
注意:這種快照方式配置簡單、靈活,但如果在宕機之前還沒有到備份快照的時間,那麼宕機之前到上一次備份之間的所有資料將會丟失。下面一種方式就可以解決這種情況。
2)Append-only file
這種方式操作的是存放檔案,簡單的說,Redis每收到一個命令請求,都會寫到檔案中。當Redis正常或非正常重啟時會執行檔案中的操作來重建整個庫,有點sql指令碼的意思。
實現方式:
同樣是在redis.conf中將 appendonly no 改為 appendonly yes,然後配置具體方式,這裡採用 everysec每秒鐘寫入磁碟一次。
進入客戶端,隨便輸入一條命令,然後退出,執行“ll”命令,檢視:
appendonly.aof檔案就是我們配置產生的檔案,使用“cat”命令檢視。