在redis中,flushDB和flushAll 都是清空當前數據庫的操作,但是兩者有很大的區別:
1、flushAll 清空數據庫並執行持久化操作,也就是RDB文件會發生改變,變成76個字節大小(初始狀態下為76字節),所以執行flushAll之后數據庫真正意義上清空了。
2、flushDB 清空數據庫,但是不執行持久化操作,也就是說RDB文件不發生改變.而redis的數據是從RDB快照文件中讀取加載到內存的,所以在flushDB之后,如果想恢復數據庫,則可以直接kill掉redis-server進程,然后重新啟動服務,這樣redis重新讀取RDB文件,數據恢復到flushDB操作之前的狀態。
注意:要直接kill 掉redis-server服務,因為shutdown操作會觸發持久化。
lsof -i:6379 命令查看redis-server的進程號,然后kill即可。